Route
在Flutter中跳转页面分两种,静态路由和动态路由
静态路由Route
静态路由 是固定的, 是不能传递参数的, 在MaterialApp 组件中设置routes
import 'package:my_first_app/pages/search.dart' as search;
import './Formdata.dart' as formdata;
.....
routes: {
// routes 注册命名路由表,可以通过这个路由的key进行跳转到不同的value页面
"/from": (context) => formdata.From(),
"/search": (context) => search.Searcj(),
},
在类中设置routes 字典, 当触发事件时, 如点击按钮
onPressed: () {
Navigator.of(context).pushNamed("from");
}
它会自动的找 MaterialApp 中的 routes中的键对应的value 值, 然后进行跳转
动态路由跳转
动态路由跳转是可以携带参数进行跳转的, 在类中定义一个 Map 用键值对将 跳转路由名字和跳转的页面组件进行关联, 如
然后在 MaterialApp
组件中监听 onGenerateRoute
路由跳转事件,当按钮中点击事件 onPressed
发生的时候, 会调用 onGenerateRoute
如图
可以在settings.arguments 中传递参数,参数可以是map类型的数据,这样就可以传递多个数据了
TabBar
TabBar 就是页面中底部tab切换组件,如
可以将属于同一页面中的不同数据进行分类
TabBar 是在 DefaultTabController
组件中的,
lenght 设置tabbar 组件的个数, 如果在bottom中 Widget列表个数没有符合这个数的话,那么就会出错
而 在TabBar中body的属性也是特殊的组件 TabBarView
组件, 在children 中编写不同TabBar页面展示的组件, 当发生点击TabBar时, 它会自动的获取children中的对应下标的组件数据进行展示