import 'package:flutter/material.dart'; import 'package:flutter/widgets.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; import 'package:starwork_flutter/base/base_controller.dart'; import 'package:starwork_flutter/common/constant/app_images.dart'; import 'package:starwork_flutter/views/home/home_view.dart'; import 'package:starwork_flutter/views/messages/messages_view.dart'; import 'package:starwork_flutter/views/mine/mine_view.dart'; class MainController extends BaseController { GlobalKey scaffoldKey = GlobalKey(); // 当前选中的索引 var currentIndex = 0.obs; // 页面列表 final pages = [ HomeView(), MessagesView(), MineView(), ]; // 更新索引 void changeIndex(int index) { currentIndex.value = index; } // 定义底部导航的标题和图标 List get bottomNavItems => [ BottomNavigationBarItem( icon: _buildTabIcon(AppImages.iconHome, AppImages.iconHomeSelected, 0), label: '首页', ), BottomNavigationBarItem( icon: _buildTabIcon(AppImages.iconNotification, AppImages.iconNotificationSelected, 1), label: '消息', ), BottomNavigationBarItem( icon: _buildTabIcon(AppImages.iconMine, AppImages.iconMineSelected, 2), label: '我的', ), ]; // 构建自定义图标组件 Widget _buildTabIcon(String unselectedIcon, String selectedIcon, int index) { return Obx(() => Image.asset( currentIndex.value == index ? selectedIcon : unselectedIcon, width: 24.w, height: 24.w, fit: BoxFit.contain, )); } // 打开抽屉的方法 void openDrawer() { try { final scaffoldState = scaffoldKey.currentState; if (scaffoldState != null && scaffoldState.hasDrawer) { scaffoldState.openDrawer(); } else { print('Cannot open drawer: Scaffold state is null or has no drawer'); } } catch (e) { print('Error opening drawer: $e'); } } // 关闭抽屉的方法 void closeDrawer() { try { final scaffoldState = scaffoldKey.currentState; if (scaffoldState != null && scaffoldState.isDrawerOpen) { scaffoldState.closeDrawer(); } } catch (e) { print('Error closing drawer: $e'); } } }