【问题标题】:Flutter, How to implement gesture for navigation transition?Flutter,如何实现导航过渡的手势?
【发布时间】:2019-11-22 23:39:17
【问题描述】:

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

比如我想实现像CupertinoPageRoute这样的导航(从底部过渡),

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

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


更新1: 经过一番研究,我发现 BuilderPageRoute 可以做自定义导航转换,但我仍然无法实现手势。

【问题讨论】:

    标签: flutter


    【解决方案1】:

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

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

    但是,这样做的唯一方法是创建一个 GestureController

    怎么做?

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

    PageRoute 里面有两个重要的东西

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

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

    当您第一次检测到手势时,您需要调用 navigator.didStartUserGesture

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

    以 Flutter 源代码中的 _CupertinoBackGestureController 为例。

    【讨论】:

    • 你能给我看看这个示例代码吗?我还需要实现相同的概念(当我像 Whatsapp 一样向左滑动任何 Listview 时,转换是从右向左,当我们想要查看读取和交付时间时。
    猜你喜欢
    • 1970-01-01
    • 2015-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-22
    • 2012-01-16
    相关资源
    最近更新 更多