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

Vertically Dismissable Screen Implementation on Flutter

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

这是我想做的;

知道如何实现吗?

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

只需将 initialChildSize 设置为 0.0 即可使其在开始时隐藏。

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

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

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

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

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

question gives you the answer of how you should show your DraggableScrollableSheet and then this 包的答案在 sheet 的大小为 1.0(即整个屏幕)时启用 dismiss 功能。不幸的是,本机 showModalBottomSheet 方法在这一点上毫无价值,因为没有空的 space 可以用来向下滑动 sheet.