Android 在颤振中,除了if(routeSettings.isInitialRoute)之外还有什么选择
由于isInitialRoute已从颤振中删除,我还可以使用什么替代?(如果我们可以直接解决,初始路线为/)Android 在颤振中,除了if(routeSettings.isInitialRoute)之外还有什么选择,android,flutter,dart,mobile,Android,Flutter,Dart,Mobile,由于isInitialRoute已从颤振中删除,我还可以使用什么替代?(如果我们可以直接解决,初始路线为/) 小部件构建(构建上下文){ 返回式示波器( 孩子:领航员( 键:导航键, initialRoute:initialRoute, OnGeneratorOute:(路由设置路由设置){ WidgetBuilder=路由[routeSettings.name]; if(routeSettings.isInitialRoute){ 返回页路由生成器( 页面生成器:(上下文,_uuuuuuuuu
小部件构建(构建上下文){
返回式示波器(
孩子:领航员(
键:导航键,
initialRoute:initialRoute,
OnGeneratorOute:(路由设置路由设置){
WidgetBuilder=路由[routeSettings.name];
if(routeSettings.isInitialRoute){
返回页路由生成器(
页面生成器:(上下文,_uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu)=>builder(上下文),
设置:路由设置,
);
}否则{
返回物料路线(
建筑商:建筑商,
设置:路由设置,
);
}
},
),
onWillPop:(){
if(navigationKey.currentState.canPop()){
navigationKey.currentState.pop();
返回Future.value(false);
}
返回未来值(true);
},
);
}
对于未来的读者,您需要阅读迁移指南
:
Route类不再在overlay中管理其覆盖项,其install()
方法不再具有insertionPoint
参数。RouteSetting
中的isInitialRoute
属性已被弃用,并且Navigator.pop()
不再返回值
因此,您应该使用的是:
您可以将Navigator.canPop()
与Navigator.pop()
结合使用,以获得相同的结果
他妈的,错误引用资料对任何人都有什么帮助??OP询问了isInitialRoute,即引用页面中的案例2。这不是你编辑这篇文章所反映的情况1。这完全是无益的,毫无意义的后期编辑。对于下面的人,请阅读以下所有内容。不要做编辑这篇文章的人做过的事,读几行。自大的胡说八道。
Widget build(BuildContext context) {
return WillPopScope(
child: Navigator(
key: navigationKey,
initialRoute: initialRoute,
onGenerateRoute: (RouteSettings routeSettings) {
WidgetBuilder builder = routes[routeSettings.name];
if (routeSettings.isInitialRoute) {
return PageRouteBuilder(
pageBuilder: (context, __, ___) => builder(context),
settings: routeSettings,
);
} else {
return MaterialPageRoute(
builder: builder,
settings: routeSettings,
);
}
},
),
onWillPop: () {
if(navigationKey.currentState.canPop()) {
navigationKey.currentState.pop();
return Future<bool>.value(false);
}
return Future<bool>.value(true);
},
);
}