我正在尝试实现一种将数据发送回先前路由的方法。 Navigator.of(context).pop函数允许与按一下按钮一起使用时可以完美工作的参数。问题是:在Android上,用户也可以通过特定于Android的后退按钮返回,因此我尝试在WillPopScope-widget的帮助下捕获该问题。在onWillPop参数中,我再次使用Navigator.of(context).pop(data),因此现在该工作已在Android上完成。新问题是:现在,由于使用WillPopScope小部件,iOS上的向后滑动手势不再起作用。
所以,问题是:无论用户轻按我放置的按钮,轻按Android专用的后退按钮还是使用iOS上的后退手势,如何将数据发送回以前的路线?
希望它清楚了:)
对于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
道具中传递的参数。
我希望这能解决您的问题。