Flutter,如何实现导航过渡的手势?

时间:2019-11-22 04:07:08

标签: flutter

如何在Flutter中实现手势以进行导航转换?

例如,我要实现类似CupertinoPageRoute(从底部过渡)的导航,

但是我也想向下滑动以弹出导航,

而且过渡应该与手势匹配。


Update1 : 经过研究,我发现BuilderPageRoute可以进行自定义导航转换,但是我仍然无法实现该手势。

1 个答案:

答案 0 :(得分:0)

研究完成后,我有一个解决方案。 (我认为这是唯一的解决方案)。

令人惊讶的是,几乎没有人关心此功能。

但是,唯一的方法是创建 GestureController

如何?

在每个navigator.push中,我们需要具有 PageRoute

在PageRoute内部有2个重要内容

  1. AnimationController -控制过渡动画。
  2. 导航器-保持导航状态。

您将需要创建一个 GestureContrller ,它可以检测到手势,然后将其转换以控制动画进度。

首次检测到手势时,需要调用 navigator.didStartUserGesture

完成手势后,您需要调用 navigator.didStopUserGesture

以Flutter源代码中的 _CupertinoBackGestureController 为例。