【问题标题】:Flutter: iOS swipe back gesture with dataFlutter:带有数据的 iOS 向后滑动手势
【发布时间】:2020-02-23 13:11:23
【问题描述】:

我正在尝试实现一种将数据发送回先前路由的方法。 Navigator.of(context).pop 函数允许一个参数在与按钮按下时完美配合。问题是:在 Android 上,用户也可以通过 Android 特定的后退按钮返回,所以我尝试在 WillPopScope-widget 的帮助下捕捉到这一点。在 onWillPop 参数中,我再次使用 Navigator.of(context).pop(data),所以现在这项工作在 Android 上完成了。新问题是:现在,由于 WillPopScope 小部件,iOS 上的向后滑动手势不再起作用。

所以,问题是:我如何才能将数据发送回之前的路由,无论用户是点击了我放在那里的按钮、点击了 Android 特定的后退按钮还是在 iOS 上使用了向后滑动手势?

希望清楚:)

【问题讨论】:

    标签: android ios flutter swipe navigator


    【解决方案1】:

    对于 iOS,您可以像这样实现 CupertinoPageRoute 而不是 MaterialPageRoute:

    import 'dart:io';
    import 'package:flutter/cupertino.dart';
    
    if(Platform.isIOS) {
       CupertinoPageRoute route = CupertinoPageRoute(
                               settings: RouteSettings(arguments: YOUR ARGUMENTS),
                               builder: (context) => SecondPage());
    
    } 
    await Navigator.push(context, route);
    

    现在您可以访问当您向后滑动时在 settings 属性中传递的参数。

    我希望这能解决您的问题。

    【讨论】:

    • 那么当我通过滑动关闭页面时如何将数据传递给 Navigator?
    • @VladislavLen in CupertinoPageRoute 你通过参数传递数据
    猜你喜欢
    • 2016-12-24
    • 2020-08-30
    • 2021-09-04
    • 1970-01-01
    • 1970-01-01
    • 2019-09-21
    • 1970-01-01
    • 2019-02-19
    • 1970-01-01
    相关资源
    最近更新 更多