String routeName, { Object? arguments, }) { return push<T>(_routeNamed<T>(routeName, arguments: arguments)!); } 除了routeName的命名路由以外,还有个可选参数arguments用于在路由页面传递参数。pop方法也一样: void pop<T extends Object?>([ T? result ]) { //... } 可以携带一个result回传到...
returnpush<T>(_routeNamed<T>(routeName,arguments:arguments)); } Route<T>_routeNamed<T>(Stringname, {@requiredObjectarguments,boolallowNull=false}) { assert(!_debugLocked); assert(name!=null); finalRouteSettingssettings=RouteSettings( name:name, isInitialRoute:_history.isEmpty, arguments:argumen...
Navigator.push(context, MaterialPageRoute(builder: (context) => Page2(arguments: arguments))); 如果是命名路由,之前是不可以传参的,新版本中增加了一个arguments参数,配合onGenerateRoute也可以传递参数,因为命名路由会将路由的名字传递给onGenerateRoute回调,并将产生的路由推入Navigator。 const String PAGE_2 =...
本质还是通过MaterialPageRoute(builder: (context) =>PassArgumentsScreen(title,message)构造函数在传参数,只不过可以统一管理,页面清晰 替换路由 普通路由 假设A,B,C三个页面 若是A->B->C,最后C想返回到A页面,就得在B->C中B页面跳转方法中使用这个函数Navigator.of(context).pushReplacement("/C",""参数""...
Navigator.of(context).push() //属于基本路由跳转。 通过push参数需要一个MaterialPageRoute对象。 普通路由跳转 coding HomePage.dart import 'package:flutter/cupertino.dart'; import 'package:flutter/material.dart'; import 'package:flutterluyotest/page/homepages/SearchPage.dart'; ...
Navigator导航器的push和pop方法可以携带参数在页面间传递,其他变形的方法也一样。pushNamed方法原型如下: Future<T?>pushNamed<TextendsObject?>(String routeName,{Object?arguments,}){returnpush<T>(_routeNamed<T>(routeName,arguments:arguments)!);} ...
Widgetbuild(BuildContext context){returnMaterialApp(home:Tabs(),//统一处理命名路由onGenerateRoute:(RouteSettings settings){final String name=settings.name;final Function pageContentBuilder=this.routes[name];if(pageContentBuilder!=null){//能寻找到对应的路由if(settings.arguments!=null){//页面跳转前有传...
1.Navigator.pushpush(BuildContext context, Route route) 将给定的路由入栈(即打开新的页面),返回值是一个Future对象,用以接收新路由出栈(即关闭)时的返回数据。pushNamed(BuildContext context, String routeName, {Object? arguments,})将给定的路由名入栈,返回值是一个Future对象,用以接收新路由出栈(即关闭)...
of(context) Navigator有几个最常见的方法: // 路由跳转:传入一个路由对象 Future<T> push<T extendsObject>(Route<T> route) // 路由跳转:传入一个名称(命名路由) Future<T> pushNamed<T extendsObject>( String routeName, { Object arguments, }) // 路由返回:可以传入一个参数 bool pop<T extends...
新版本开始可以给pushNamed设置arguments参数,然后在新页面通过ModalRoute.of(context).settings.arguments获取。 ///不带参数的路由表跳转 Navigator.pushNamed(context, routeName); ///跳转新页面并且替换,比如登录页跳转主页 Navigator.pushReplacementNamed(context, routeName); ...