[Flutter] package 管理、页面的路由和 widg

2020-08-06  本文已影响0人  BudSwift

1. package 包的管理

可以在项目中新建一个 package(文件夹)并在其中创建多个页面 dart 文件,举例如下:

pages
import "package:myapp/pages/home.dart"
import "package:myapp/pages/detail.dart"
import "package:myapp/pages/edit.dart"

2. 页面的路由(跳转)

使用路由可以实现定义好路由的路径,可以在程序启动构造 App 时传入一个 routes 参数。这是一个 map:

void main() 
{
    runApp(MerterialApp(
    // 不再使用 home 属性,使用 initialRoute 代替
    initialRoute: '/',
    routes: { 
        '/' : (context) => Home(),
        '/detail' : (context) => Detail(),
        '/edit' : (context) => Edit(),
    },
))
}

执行页面的路由跳转可以通过在点击事件中调用 Navigator 进行,传入上下文 context 和路由路径,其中 context 就是 widget 在 build(BuildContext context) 的参数。

// 跳转到 detail 页面
Navigator.pushNamed(context, "/Detail");

当跳转到一个下一个页面时如果下个页面有 appBar(导航栏),那么导航栏会自动出现一个返回按钮。

3. widget 的生命周期

首先区分 stateless 和 stateful,stateless 的方法只会被调用一次,而 stateful 则会在 setState 时重复调用。
而生命周期就体现在 stateful widget 的 State 对象中
有三个生命周期方法:

  1. initState() 在初始化时被调用一次
  2. build(BuildContext context) 在构造内容时调用,被调用一次,在 state 变化时重复被调用
  3. dispose 在 widget 被移除时调用。
上一篇 下一篇

猜你喜欢

热点阅读