import 'package:flutter/material.dart'; import 'package:flutter_riverpod/flutter_riverpod.dart'; import '../core/theme/app_colors.dart'; import '../features/earnings/presentation/earnings_tab.dart'; import '../features/order/presentation/order_tab.dart'; import '../features/profile/presentation/profile_tab.dart'; import '../shared/widgets/x_bottom_nav.dart'; import 'tab_index.dart'; /// 3 个 Tab 的常驻容器。源项目每个页面各自挂 `CustomTabBar`, /// 这里统一收口到容器层,用 [IndexedStack] 保留各页内部状态。 class TabsPage extends ConsumerWidget { const TabsPage({super.key}); @override Widget build(BuildContext context, WidgetRef ref) { final current = ref.watch(tabIndexProvider); return Scaffold( backgroundColor: AppColors.bgPage, body: Stack( children: [ Positioned.fill( child: IndexedStack( index: current.index, children: const [OrderTab(), EarningsTab(), ProfileTab()], ), ), Positioned( left: 0, right: 0, bottom: 0, child: XBottomNav( current: current.key, onChanged: (key) => ref.read(tabIndexProvider.notifier).selectByKey(key), ), ), ], ), ); } }