import 'package:dating_touchme_app/generated/assets.dart'; import 'package:dating_touchme_app/pages/message/message_page.dart'; import 'package:dating_touchme_app/pages/mine/mine_page.dart'; import 'package:dating_touchme_app/rtc/rtm_manager.dart'; import 'package:flutter/material.dart'; import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; import 'package:flutter_svga/flutter_svga.dart'; import 'package:get/get.dart'; import 'package:get_storage/get_storage.dart'; import 'package:dating_touchme_app/controller/mine/user_controller.dart'; import 'package:tdesign_flutter/tdesign_flutter.dart'; import '../../extension/router_service.dart'; import '../../widget/double_tap_to_exit_widget.dart'; import '../discover/discover_page.dart'; import '../home/home_page.dart'; // 移除未使用的导入 class MainPage extends StatefulWidget { const MainPage({super.key}); @override State createState() => _MainPageState(); } class _MainPageState extends State { final storage = GetStorage(); PageController pageController = PageController(initialPage: 0); int currentIndex = 0; // 使用普通int替代RxInt // 将页面实例存储为成员变量,避免每次build都重新创建 late HomePage homePage; late DiscoverPage discoverPage; late MessagePage messagePage; late MinePage minePage; @override void initState() { super.initState(); // 初始化页面实例 homePage = HomePage(); // discoverPage = DiscoverPage(); messagePage = MessagePage(); minePage = MinePage(); // 初始化UserController并调用获取环信用户token的方法 final userController = Get.put(UserController()); userController.getHxUserToken(); Get.put(RouteGuardService()); // 检查token并调用获取婚姻信息详情的方法 checkTokenAndFetchMarriageInfo(); initRTM(); } // 检查token并获取婚姻信息详情 Future checkTokenAndFetchMarriageInfo() async { // 调用userController中的getMarriageInformationDetail方法 final userController = Get.find(); final userId = storage.read('userId'); if(userId != null && userId.isNotEmpty){ await userController.getBaseUserInfo(userId, true); } } initRTM() async { String? userId = storage.read('userId'); await RTMManager.instance.initialize(appId: '4c2ea9dcb4c5440593a418df0fdd512d', userId: userId ?? ''); } @override Widget build(BuildContext context) { return DoubleTapToExitWidget( child: Scaffold( backgroundColor: Colors.transparent, resizeToAvoidBottomInset: false, body: PageView( physics: const NeverScrollableScrollPhysics(), controller: pageController, children: [ homePage, // 使用成员变量引用 // discoverPage, messagePage, minePage, ], ), bottomNavigationBar: TDBottomTabBar( currentIndex: currentIndex, TDBottomTabBarBasicType.iconText, componentType: TDBottomTabBarComponentType.normal, useVerticalDivider: false, navigationTabs: [ tabItem('首页', Assets.imagesHomePre, Assets.imagesHomeNol, 0), // tabItem('找对象', Assets.imagesDiscoverPre, Assets.imagesDiscoverNol, 1), tabItem('消息', Assets.imagesMessagePre, Assets.imagesMessageNol, 1), tabItem('我的', Assets.imagesMinePre, Assets.imagesMineNol, 2), ] ) ), ); } /// 底部导航栏item TDBottomTabBarTabConfig tabItem(String title, String selectedIcon, String unselectedIcon, int index) { return TDBottomTabBarTabConfig( tabText: title, selectedIcon: Image.asset(selectedIcon, width: 25, height: 25, fit: BoxFit.cover), unselectedIcon: Image.asset(unselectedIcon, width: 25, height: 25, fit: BoxFit.cover), selectTabTextStyle: TextStyle(color: Color(0xFFED4AC3)), unselectTabTextStyle: TextStyle(color: Color(0xFF999999)), onTap: () { currentIndex = index; pageController.jumpToPage(index); }, ); } }