如何在Flutter中实现手势以进行导航转换?
例如,我要实现类似CupertinoPageRoute(从底部过渡)的导航,
但是我也想向下滑动以弹出导航,
而且过渡应该与手势匹配。
Update1 : 经过研究,我发现BuilderPageRoute可以进行自定义导航转换,但是我仍然无法实现该手势。
答案 0 :(得分:0)
研究完成后,我有一个解决方案。 (我认为这是唯一的解决方案)。
令人惊讶的是,几乎没有人关心此功能。
但是,唯一的方法是创建 GestureController
如何?
在每个navigator.push中,我们需要具有 PageRoute
在PageRoute内部有2个重要内容
您将需要创建一个 GestureContrller ,它可以检测到手势,然后将其转换以控制动画进度。
首次检测到手势时,需要调用 navigator.didStartUserGesture
完成手势后,您需要调用 navigator.didStopUserGesture 。
以Flutter源代码中的 _CupertinoBackGestureController 为例。