美文网首页
[Flutter] package 管理、页面的路由和 widg

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

作者: BudSwift | 来源:发表于2020-08-06 09:38 被阅读0次

1. package 包的管理

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

  • package 名称
pages
  • 页面文件及引入方式
import "package:myapp/pages/home.dart"
import "package:myapp/pages/detail.dart"
import "package:myapp/pages/edit.dart"

2. 页面的路由(跳转)

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

  • key 是路径
  • value 是构造页面 widget 的闭包,带有一个 context 参数来自于调用路由的上下文
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 被移除时调用。

相关文章

网友评论

      本文标题:[Flutter] package 管理、页面的路由和 widg

      本文链接:https://www.haomeiwen.com/subject/wuzarktx.html