iOS上的向后滑动手势会被WillPopScope覆盖

时间:2019-02-23 13:13:27

标签: flutter flutter-layout

如果我使用WillPopScope用新的路由覆盖BackButton行为,则可以正常工作。但是在iOS上,自动的“向后滑动”手势不再起作用。如何在iOS上设置SwipeBack手势,以将当前屏幕推送到“ StartScreen”类的页面?

WillPopScope(onWillPop: (){
      Navigator.push(
        context,
        MaterialPageRoute(
          builder: (context) => StartScreen(),
        ),
      );
    }

2 个答案:

答案 0 :(得分:0)

这可能是一个很晚的答案,但是目前尚无明确的机会来听这个手势

当您按下后退按钮时,您可以实现对onWillPop的调用,同时,如果您将ModalRoute类的后代类(或其后代(例如MaterialPageRoute))制成并覆盖< strong> hasScopedWillPopCallback 方法(但是,手势不会调用onWillPop)

答案 1 :(得分:0)

git worktree并不影响导航(即:在导航器上推送路线)。当您不希望用户离开当前路线时,它用于否决(阻止)离开当前路线的导航。 (例如,当它可能导致数据丢失时。)

我最近发布了一个可解决此问题的软件包,因为我对WillPopScope的当前行为有类似的问题。该程序包称为CupertinoWillPopScope,它使您可以有条件地否决后退导航。因此,例如,只有在存在实际损失风险时,您才能阻止它。