flutter routes
Flutter router
lib/routes.dart
import 'package:flutter/material.dart'; import 'package:flutter_sky/screens/home/index.dart'; import 'package:flutter_sky/screens/profile/index.dart'; class Routes{ static final home = new Home(); static final profile = new Profile(); final routes = { '/': (context) => home, '/home': (context) => home, '/profile': (context) => profile }; Routes(){ runApp(new MaterialApp( title: 'flutter sky', // initialRoute: '/', // home: profile, routes: routes, )); } }
上面是一个简单的路由配置代码,假设现在的APP有2个页面:home, profile。我们拿这个例子来讲一下flutter的routes配置一些注意的点:
首先可以看到注掉的那2行代码,分别是MaterialApp的两个属性:initialRoute和home。
// 声明:以下讨论都是基于不考虑onGenerateRoute和onUnknownRoute的存在
initialRoute
是启动APP的初始页面,也就是用户看到的第一个页面。如果这个属性没有给值,那么会去寻找路由表里面的'/',或者MaterialApp的home属性。
'/'和MaterialApp的home属性
路由表(也就是我们上面代码里面定义的routes变量)里面的'/' 和MaterialApp的home属性,二者不能同时存在,但是必须有一个存在。
当initialRoute没有设置
或者MaterialApp的home属性都是定义了主页面,当initialRoute没有定义的时候,用户看到的就是'/'或者MaterialApp的home多对应的页面
当initialRoute设置了
当initialRoute和'/'或者MaterialApp的home属性同时存在的时候,initialRoute的优先级高于二者。意思就是如果initialRoute定义的页面和'/'或者MaterialApp的home设置的页面不同时,用户看到的是initialRoute定义的页面。
相关推荐
csdnYF 2020-11-15
SemiraChen 2020-10-10
YejiaSun 2020-09-27
csdnYF 2020-09-20
FrankAbagnale 2020-09-15
wmd看海 2020-07-27
szintu 2020-07-05
chaoxiao 2020-07-04
wmd看海 2020-06-27
龙衣 2020-06-26
龙衣 2020-06-09
龙衣 2020-06-08
wmd看海 2020-06-04
Samlss 2020-06-04
wmd看海 2020-06-04
csdnYF 2020-05-30
androidgjw 2020-05-28
wmd看海 2020-05-28
wmd看海 2020-05-19