zoukankan      html  css  js  c++  java
  • flutter 入口文件配置路由+加载页面

    入口程序

    所有的应用都有一个入口程序,通常是main函数引导进入应用程序,入口程序主要做一下几个方面的处理:

    1、自定义主题:通过自定义将主题定义为XX风格,定义导航栏、弹出菜单等。

    2、定义路由表:为整个应用程序作导航使用。例如:整个应用分三块需要路由,分别是:应用程序app、好友动态frends、搜索页面search。

    3、指定首页:打开应用的第一个页面即为首页。通常首页并不是应用程序的主页面,而是加载页面。

    指定方式:  home:new LoadingPage()

    4、打开main.dart文件,按照上面几个步骤编写代码

    // main 入口文件
    import 'package:flutter/material.dart';
    import './app.dart';
    import './loading.dart';
    
    // 应用程序入口
    void main() => runApp(MaterialApp(
          debugShowCheckedModeBanner: false,  //去除右上角的Debug标签
          title: '测试',
          // 自定义主题
          theme: mDefaultTheme,
          // 添加路由
          routes: <String, WidgetBuilder>{
            "/app": (BuildContext context) => new App(),  //主页面
          },
          // 首页
          home: new LoadingPage(),  //加载页面
        ));
    
    // 自定义主题
    final ThemeData mDefaultTheme = new ThemeData(
        primaryColor: Colors.green,
        scaffoldBackgroundColor: Color(0xFFebebeb),
        cardColor: Colors.green);

    加载页面

    其实加载页面和普通的页面并没有什么两样,唯一的区别是,加载页面是伴随着应用程序的加载完成的。由于这个过程是需要时间处理的,所以这个页面需要停留一定的时间,通常设置成几秒即可。

    import 'package:flutter/material.dart';
    import 'dart:async';
    
    //加载页面
    class LoadingPage extends StatefulWidget {
      @override
      _LoadingState createState() => new _LoadingState();
    }
    
    class _LoadingState extends State<LoadingPage> {
    
      @override
      void initState(){
        super.initState();
        //在加载页面停顿3秒
        new Future.delayed(Duration(seconds: 3),(){
          print("Flutter即时通讯APP界面实现...");
          Navigator.of(context).pushReplacementNamed("/app");
        });
      }
    
      @override
      Widget build(BuildContext context){
        return new Center(
          child: Stack(
            children: <Widget>[
              //加载页面居中背景图 使用cover模式
              Image.asset("images/loading.png",fit:BoxFit.cover,),
            ]
          ),
        );
      }
    
    }

    5、应用页面:为加载页面跳转后进入的页面。应用页面为整个程序的核心页面。

    先写个测试的主页面,后续再添加相关功能。

    import 'package:flutter/material.dart';
    
    // 应用页面使用有状态Widget
    class App extends StatefulWidget {
      @override
      AppState createState() => AppState();
    }
    class AppState extends State<App> {
      @override
      Widget build(BuildContext context) {
        // TODO: implement build
        return Scaffold(
          body: new Center(
            child: new Text(
              '主页面',
              textAlign: TextAlign.center,
              style: new TextStyle(
                color: Colors.red[500],
                fontSize: 24.0,
                fontWeight: FontWeight.bold
              ),
            ),
          ),
        );
      }
    }
    /// 主页面

    现在就可以打开设备运行查看效果了。

  • 相关阅读:
    目前流行前端几大UI框架排行榜
    vue nginx配置
    快速切换npm源
    vue项目打包部署生产环境
    VScoed Vue settings.json配置
    java获取远程图片分辨率
    Fegin的使用总结
    线程池核心参数
    mysqldump定时任务生成备份文件内容为空解决方法
    对汉字编码
  • 原文地址:https://www.cnblogs.com/joe235/p/11149334.html
Copyright © 2011-2022 走看看