Flutter:带有数据的 iOS 向后滑动手势
Posted
技术标签:
【中文标题】Flutter:带有数据的 iOS 向后滑动手势【英文标题】:Flutter: iOS swipe back gesture with data 【发布时间】: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 上使用了向后滑动手势?
希望清楚:)
【问题讨论】:
【参考方案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 你通过参数传递数据以上是关于Flutter:带有数据的 iOS 向后滑动手势的主要内容,如果未能解决你的问题,请参考以下文章
如何在 iOS 7 上的 UINavigationController 中禁用向后滑动手势
CapacitorJS iOS 使用 Vue Router 向后滑动会导致空白页面