Flutter 上的垂直可关闭屏幕实现

Posted

技术标签:

【中文标题】Flutter 上的垂直可关闭屏幕实现【英文标题】:Vertically Dismissable Screen Implementation on Flutter 【发布时间】:2020-12-22 01:30:31 【问题描述】:

我想要的只是一个可垂直关闭的小部件。我想要的android等价物是Slidr 我一直在 Flutter 中寻找它的等价物,但我没有找到它。

如果我想这样做的话;

知道如何实现这一目标吗?

【问题讨论】:

【参考方案1】:

我认为这可以通过 DraggableScrollableSheet 小部件来完成!

只需将initialChildSize 设置为 0.0 即可开始隐藏。

然后将此工作表小部件和您的电视剧列表视图包装在一个堆栈中,使工作表位于列表上方。

当你点击一个给定的电视剧时,你可以将initialChildSize更改为1.0,并用setState(()=>);重建

现在您有一个可拖动的工作表,点击即可显示!为了制作导航动画,您可以使用AnimationController,或者有一种方法可以在没有堆栈的情况下执行此操作,在这种情况下您可以使用Navigator.pushNamed

谢谢,如果您还有其他问题,请告诉我。 欲了解更多信息,请查看:https://api.flutter.dev/flutter/widgets/DraggableScrollableSheet-class.html

【讨论】:

更新 initialChildSize 没有任何作用 as you can see here 感谢您给我指导,即使您的确切答案没有解决问题,DraggableScrollableSheet 对我来说是正确的答案 :) 我自己添加了一个答案,对于可能遇到的人以后有这个需求。再次感谢:)【参考方案2】:

根据@Mihir Thanekar 的回答,我用谷歌搜索了一下,终于找到了解决我问题的答案。

this 问题的答案为您提供了如何显示DraggableScrollableSheet 的答案,然后当sheet 的大小为1.0(即整个屏幕)时,this 包启用dismiss 功能.不幸的是,本机 showModalBottomSheet 方法在这一点上毫无价值,因为没有空白空间可用于向下滑动 sheet

【讨论】:

以上是关于Flutter 上的垂直可关闭屏幕实现的主要内容,如果未能解决你的问题,请参考以下文章

垂直布局的小型设备上的高度不正确? [关闭]

如何在 Flutter 中使屏幕可滚动?

如何为小部件 Flutter 添加垂直间距

所见即所得: Adobe XD 的 Flutter 插件

jetpack compose 上的垂直列表中的水平列表不顺畅

Flutter 如何使用 ListView 水平和 GridView 垂直滚动屏幕