flutter routes

发布时间:2019-07-02 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了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定义的页面。

脚本宝典总结

以上是脚本宝典为你收集整理的flutter routes全部内容,希望文章能够帮你解决flutter routes所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。