【发布时间】:2019-11-22 23:39:17
【问题描述】:
如何在 Flutter 中实现导航过渡的手势?
比如我想实现像CupertinoPageRoute这样的导航(从底部过渡),
但我也想向下滑动弹出导航,
而且过渡也应该与手势相匹配。
更新1: 经过一番研究,我发现 BuilderPageRoute 可以做自定义导航转换,但我仍然无法实现手势。
【问题讨论】:
标签: flutter
如何在 Flutter 中实现导航过渡的手势?
比如我想实现像CupertinoPageRoute这样的导航(从底部过渡),
但我也想向下滑动弹出导航,
而且过渡也应该与手势相匹配。
更新1: 经过一番研究,我发现 BuilderPageRoute 可以做自定义导航转换,但我仍然无法实现手势。
【问题讨论】:
标签: flutter
经过研究,我有一个解决方案。 (我认为这是唯一的解决方案)。
令人惊讶的是,几乎没有人关心这个功能。
但是,这样做的唯一方法是创建一个 GestureController
怎么做?
在每个 navigator.push 中,我们需要有 PageRoute
PageRoute 里面有两个重要的东西
您需要创建一个 GestureContrller 来检测手势,然后将其转换以控制动画进度。
当您第一次检测到手势时,您需要调用 navigator.didStartUserGesture
完成手势后,您需要调用 navigator.didStopUserGesture。
以 Flutter 源代码中的 _CupertinoBackGestureController 为例。
【讨论】: