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 createState() => _RecommendWindowState(); } class _RecommendWindowState extends State with AutomaticKeepAliveClientMixin, SingleTickerProviderStateMixin { late TabController tabController; final HomeController controller = Get.find(); @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; }