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.
 
 
 
 
 

92 lines
2.8 KiB

import 'package:dating_touchme_app/controller/home/home_controller.dart';
import 'package:dating_touchme_app/pages/home/nearby_tab.dart';
import 'package:dating_touchme_app/pages/home/recommend_tab.dart';
import 'package:flutter/material.dart';
import 'package:get/get.dart';
import 'package:tdesign_flutter/tdesign_flutter.dart';
class RecommendWindow extends StatefulWidget {
const RecommendWindow({super.key});
@override
State<RecommendWindow> createState() => _RecommendWindowState();
}
class _RecommendWindowState extends State<RecommendWindow> with AutomaticKeepAliveClientMixin, SingleTickerProviderStateMixin {
late TabController tabController;
final HomeController controller = Get.find<HomeController>();
@override
void initState() {
super.initState();
tabController = TabController(length: 2, vsync: this);
}
@override
Widget build(BuildContext context) {
super.build(context);
return Column(
children: [
// TDTabBar(
// tabs: [
// TDTab(
// child: Padding(
// padding: EdgeInsets.only(right: 16, left: 16),
// child: Text('推荐'),
// ),
// ),
// TDTab(
// child: Padding(
// padding: EdgeInsets.only(right: 16, left: 16),
// child: Text('同城'),
// ),
// ),
// ],
// backgroundColor: Colors.transparent,
// labelPadding: const EdgeInsets.only(right: 4, top: 10, bottom: 10, left: 4),
// selectedBgColor: const Color.fromRGBO(108, 105, 244, 1),
// unSelectedBgColor: Colors.transparent,
// labelColor: Colors.white,
// dividerHeight: 0,
// tabAlignment: TabAlignment.start,
// outlineType: TDTabBarOutlineType.capsule,
// controller: tabController,
// showIndicator: false,
// isScrollable: true,
// onTap: (index) async {
// print('相亲页面 Tab: $index');
// if (controller.selectedTabIndex.value != index) {
// controller.setSelectedTabIndex(index);
// // 确保状态更新后刷新UI
// controller.update();
// }
// },
// ),
Expanded(
child: Obx(() {
// 使用 IndexedStack 保持两个列表的状态,根据当前选中的标签显示对应的列表
return IndexedStack(
index: controller.selectedTabIndex.value,
children: const [
// 推荐列表
RecommendTab(),
// 同城列表
NearbyTab(),
],
);
}),
),
],
);
}
@override
bool get wantKeepAlive => true;
}