Flutter路由管理

本文详细介绍了Flutter的路由管理,包括普通路由的简单实例、常用Navigator方法和pop传值,命名路由的设置与参数传递,以及路由模块化的实现。通过具体的代码示例和讲解,帮助开发者更好地理解和掌握Flutter中的路由操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 普通路由

普通路由传递参数很简单,就是自定义的Widget其实就是一个类,
定义Widget时,构造函数接收参数,然后跳转到这个Widget时,和普通的类一样传递参数就好了。
1.1 简单实例
// 自定义一个Widget
import 'package:flutter/material.dart';
class Home extends StatefulWidget {
   
  // 这里的data将有外部传入 这是普通路由传值的方式
  String data;
  Home(this.data);
  @override
  _HomeState createState() => _HomeState();
}

class _HomeState extends State<Home> {
   
  @override
  Widget build(BuildContext context) {
   
    return Scaffold(
      appBar: AppBar(title: Text("Home"),),
      // state中可以通过widget获取widget对象
      body: Text(widget.data)
    );
  }
}
// 外部跳转到自定义的Widgte
import 'package:FlutterTest/home.dart';
import 'package:flutter/material.dart';
//  home>onInitRoute>onGenerateRoute>
main(List<String> args) {
   
  runApp(MaterialApp(
      title: "路由管理",
      home:Scaffold(
        appBar: AppBar(title: Text("主页"),),
        // 此处是因为上文没有context,但是Navigator跳转时需要传入context,因此使用Builder,Builder可以获取到context,具体用法可百度。
        body: Builder(builder: (context){
   
         // 按钮
         return  FlatButton(onPressed: (){
    
          // 这个的写法比较固定,第一个参数接收context,第二个参数接收一个Route,这里使用MaterialPageRoute,return要跳转的页面即可。可以传递参数,如下所示
          Navigator.push(context,MaterialPageRoute(builder: (context){
   
            // 返回自定义的Widget并传递参数
            return Home('Rob');
          }));
        }, child: Text("跳转到登录页面"));
        })
      ),
1.2 普通路由常用的Navigator方法
// 1. Navigator.push(context,route)  跳转至某个页面 可以使用pop回到原页面
Navigator.push(context,MaterialPageRoute(builder: (context){
   
 // 返回一个Widget 跳转也是跳转到这个Widget去
 return Home('Rob'
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值