You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

89 lines
2.7 KiB

import 'package:dating_touchme_app/pages/main/tabbar/main_tab_bar.dart';
import 'package:dating_touchme_app/pages/message/message_page.dart';
import 'package:dating_touchme_app/pages/mine/mine_page.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:get_storage/get_storage.dart';
import 'package:dating_touchme_app/controller/mine/user_controller.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<MainPage> createState() => _MainPageState();
}
class _MainPageState extends State<MainPage> {
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();
// 检查token并调用获取婚姻信息详情的方法
checkTokenAndFetchMarriageInfo();
}
// 检查token并获取婚姻信息详情
Future<void> checkTokenAndFetchMarriageInfo() async {
// 调用userController中的getMarriageInformationDetail方法
final userController = Get.find<UserController>();
await userController.getMarriageInformationDetail();
}
@override
Widget build(BuildContext context) {
return DoubleTapToExitWidget(
child: Scaffold(
backgroundColor: Colors.transparent,
resizeToAvoidBottomInset: false,
body: Stack(
alignment: Alignment.bottomCenter,
children: [
PageView(
physics: const NeverScrollableScrollPhysics(),
controller: pageController,
children: [
homePage, // 使用成员变量引用
discoverPage,
messagePage,
minePage,
],
),
MainTabBar(
initialIndex: currentIndex,
onTabChanged: (index) {
currentIndex = index;
pageController.jumpToPage(index);
},
),
],
),
),
);
}
}