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.
 
 
 
 
 

125 lines
3.8 KiB

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<DiscoverPage> createState() => _DiscoverPageState();
}
class _DiscoverPageState extends State<DiscoverPage>
with AutomaticKeepAliveClientMixin {
late final RoomController roomController;
late final PageController _pageController;
List<String> topNav = ["相亲", "聚会脱单"];
int active = 0;
void changeNav(int active) {
setState(() {
this.active = active;
_pageController.jumpToPage(active);
});
}
@override
void initState() {
super.initState();
if (Get.isRegistered<RoomController>()) {
roomController = Get.find<RoomController>();
} else {
roomController = Get.put(RoomController());
}
_pageController = PageController(initialPage: 0);
roomController.matchmakerFlag.value = GlobalData().userData!.matchmakerFlag!;
}
@override
void reassemble() {
super.reassemble();
print('reassemble 调用 - 热重载时触发');
}
@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;
}