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.
90 lines
2.7 KiB
90 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 '../../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<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();
|
|
Get.put(RouteGuardService());
|
|
// 检查token并调用获取婚姻信息详情的方法
|
|
checkTokenAndFetchMarriageInfo();
|
|
}
|
|
|
|
// 检查token并获取婚姻信息详情
|
|
Future<void> checkTokenAndFetchMarriageInfo() async {
|
|
// 调用userController中的getMarriageInformationDetail方法
|
|
final userController = Get.find<UserController>();
|
|
await userController.getMarriageInformationDetail(true);
|
|
}
|
|
|
|
@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);
|
|
},
|
|
),
|
|
],
|
|
),
|
|
),
|
|
);
|
|
}
|
|
}
|