import 'package:dating_touchme_app/components/home_appbar.dart'; import 'package:dating_touchme_app/controller/discover/room_controller.dart'; import 'package:dating_touchme_app/generated/assets.dart'; import 'package:dating_touchme_app/pages/discover/dating_page.dart'; import 'package:dating_touchme_app/pages/discover/party_page.dart'; import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; import 'package:get_storage/get_storage.dart'; import 'package:tdesign_flutter/tdesign_flutter.dart'; import '../../controller/global.dart'; class DiscoverPage extends StatefulWidget { const DiscoverPage({super.key}); @override State createState() => _DiscoverPageState(); } class _DiscoverPageState extends State with AutomaticKeepAliveClientMixin { late final RoomController roomController; late final PageController _pageController; List topNav = ["相亲", "聚会脱单"]; int active = 0; void changeNav(int active) { setState(() { this.active = active; _pageController.jumpToPage(active); }); } @override void initState() { super.initState(); if (Get.isRegistered()) { roomController = Get.find(); } else { roomController = Get.put(RoomController()); } _pageController = PageController(initialPage: 0); roomController.matchmakerFlag.value = GlobalData().userData!.matchmakerFlag!; } @override void dispose() { _pageController.dispose(); super.dispose(); } @override Widget build(BuildContext context) { super.build(context); return Stack( children: [ Image.asset( Assets.imagesBgInformation, fit: BoxFit.cover, width: double.infinity, height: double.infinity, ), Container( padding: EdgeInsets.symmetric(horizontal: 12.w), child: Column( children: [ Obx(() { return HomeAppbar( topNav: topNav, changeNav: changeNav, activeIndex: active, right: TDButton( text: roomController.matchmakerFlag.value ? '开始直播' : '申请红娘', width: 60.w, height: 24.h, padding: EdgeInsetsGeometry.symmetric(horizontal: 4.w), size: TDButtonSize.small, type: TDButtonType.fill, shape: TDButtonShape.round, theme: roomController.matchmakerFlag.value ? TDButtonTheme.danger : TDButtonTheme.primary, textStyle: TextStyle(fontSize: 10.w), onTap: () async { if(roomController.matchmakerFlag.value){ await roomController.createRtcChannel(); } else { roomController.registerMatch(); } }, ), ); }), Expanded( child: PageView( controller: _pageController, physics: const NeverScrollableScrollPhysics(), onPageChanged: (index) { setState(() { active = index; }); }, children: const [ DatingPage(), PartyPage(), ], ), ), ], ), ), ], ); } @override bool get wantKeepAlive => true; }