import 'package:flutter/material.dart'; import 'package:get/get.dart'; import 'package:wallpaper/common/components/keep_alive_wrapper.dart'; import 'package:wallpaper/modules/root/root_controller.dart'; class RootView extends GetView { const RootView({super.key}); @override Widget build(BuildContext context) { return Scaffold( body: PageView( physics: const NeverScrollableScrollPhysics(), controller: controller.pageController, onPageChanged: (index) => controller.onPageChanged(index), children: controller.pages.map((e) => KeepAliveWrapper(child: e.widget)).toList(), ), bottomNavigationBar: Obx(() { return BottomNavigationBar( currentIndex: controller.currentIndex.value, onTap: (index) => controller.onTabTapped(index), items: _bottomNavigationBarItems(), ); }), ); } List _bottomNavigationBarItems() { return controller.pages.map((e) { return BottomNavigationBarItem( icon: Icon(e.icons), label: e.label, ); }).toList(); } }