8.3 主界面编写
实现步骤:
第 1 步:Bindings 依赖管理
主界面、首页、购物车、消息、我的 一共 5 个控制器,统一依赖载入
lib/pages/system/main/binding.dart
1 2 3 4 5 6 7 8 9 10 11
| class MainBinding implements Bindings { @override void dependencies() { Get.lazyPut<HomeController>(() => HomeController()); Get.lazyPut<CartIndexController>(() => CartIndexController()); Get.lazyPut<MsgIndexController>(() => MsgIndexController()); Get.lazyPut<MyIndexController>(() => MyIndexController()); Get.lazyPut<MainController>(() => MainController()); } }
|
MsgIndexController
界面请自行添加,位置 lib/pages/msg/msg_index
第 2 步:router 路由加载
lib/common/routers/pages.dart
1 2 3 4 5
| GetPage( name: RouteNames.main, page: () => const MainPage(), binding: MainBinding(), ),
|
第 3 步:视图中 GetBuilder 初始
lib/pages/system/main/view.dart
1 2 3 4 5 6 7 8
| @override Widget build(BuildContext context) { return GetBuilder<MainController>( init: Get.find<MainController>(), id: "main", builder: (_) => _buildView(), ); }
|
init: Get.find<MainController>()
采用 这种 find
的方式初始
其它几个界面是一样的不再重复说明
第 4 步:视图中 PageView 设置
lib/pages/system/main/view.dart
1 2 3 4 5 6 7 8 9 10 11 12 13
| ... body: PageView( physics: const NeverScrollableScrollPhysics(), controller: controller.pageController, onPageChanged: controller.onIndexChanged, children: const [ HomePage(), CartIndexPage(), MsgIndexPage(), MyIndexPage(), ], ),
|
提交代码到 git