flutter路由

路由

  1. 静态路由
    在相应MaterialApp组件内定义Route,再在需要跳转的地方用以下方法跳转。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    定义:
    return MaterialApp(
    // 命名路由,无法动态传参
    routes: <String, WidgetBuilder>{
    '/search': (BuildContext context) => SearchWidget(),
    },
    );
    跳转:
    onPressed: () => Navigator.of(context).pushNamed('/search')

    onPressed: () => Navigator.pushNamed(context, '/search')
  2. 动态路由
    不需要定义

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    跳转:
    Navigator.push(context, MaterialPageRoute(builder: (_){
    return TestRoute(title: '传参');
    }));

    Navigator.of(context).push(MaterialPageRoute(builder: (_){
    return TestRoute(title: '传参');
    }));
    接收:
    接收组件需为动态组件
    class TestRoute extends StatefulWidget {
    final String title; // 储存传递过来的参数
    TestRoute({this.title}); // 本页面的构造器,接收传递过来的参数

    @override
    _TestRouteState createState() => _TestRouteState();
    }

    class _TestRouteState extends State<TestRoute> {
    @override
    Widget build(BuildContext context) {
    return Scaffold(
    appBar: AppBar(
    title: Text(widget.title), // 使用
    ),
    );
    }
-------------本文结束感谢您的阅读-------------
坚持原创,感谢支持!