flutter简单的路由传值

1.注册路由

Map<String, WidgetBuilder> routers = {
 "简单的列表": (context) {
   return new SimpleListViewPage();
 },
 "简单的布局": (context) {
   return new SimpleLayoutPage();
 },
 "按钮点击": (context) {
   return new SimpleCounterPage(title: "测试");
 }
};

class MyApp extends StatelessWidget {
 @override
 Widget build(BuildContext context) {
   return new MaterialApp(
     title: 'Startup Name Generator',
     initialRoute: "/",
     theme: ThemeData(primaryColor: Colors.white),
     home: new RandomWords(),
     routes: routers,
   );
 }
}

2.路由跳转
arguments 就是传递的参数名

onTap: () {
                print("routeLists[index]=" + routeLists[index]);
                Navigator.of(context)
                    .pushNamed(routeLists[index], arguments: "hi");
              },

3.接收参数

 var args = ModalRoute.of(context)?.settings.arguments;
    print(args);

4.反向传值

Navigator.pop(context, "我是返回值");

5.接收反向传递的值

onPressed: () async {
                var result = await Navigator.push(context,
                    MaterialPageRoute(builder: (context) {
                  return SimpleTipRoutePage(text: "测试");
                }));
                print("返回值为:$result");
              }
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容