import 'package:flutter/material.dart'; import 'package:food_hub_app/widgets/common/index.dart'; import 'package:food_hub_app/widgets/recipe/calendar.dart'; import 'package:food_hub_app/widgets/recipe/list.dart'; import 'package:food_hub_app/widgets/recipe/timeline.dart'; enum RecordTab { recipe('菜谱'), calendar('日历'), timeline('时间轴'); final String label; const RecordTab(this.label); } class RecordPage extends StatefulWidget { const RecordPage({super.key}); @override State createState() => _RecordPageState(); } class _RecordPageState extends State { RecordTab _currentTab = RecordTab.recipe; final List _tabPages = [ RecipeList(), RecipeCalendar(), RecipeTimeline(), ]; Widget buildTabs({ required BuildContext context, required RecordTab currentTab, required ValueChanged onTabChanged, }) { return Container( padding: EdgeInsets.all(8), child: buildToggleSwitch( context: context, currentTab: currentTab, tabValues: RecordTab.values, labels: RecordTab.values.map((e) => e.label).toList(), onTabChanged: onTabChanged, ), ); } @override Widget build(BuildContext context) { return Column( children: [ buildTabs( context: context, currentTab: _currentTab, onTabChanged: (tab) { setState(() { _currentTab = tab; }); }, ), Expanded( child: IndexedStack(index: _currentTab.index, children: _tabPages), ), ], ); } }