feat:增加加载中组件

This commit is contained in:
2025-11-19 16:35:20 +08:00
parent 625a872d2f
commit 8acad9c63a
15 changed files with 616 additions and 344 deletions

View File

@@ -1,8 +1,10 @@
import 'package:flutter/material.dart';
import 'package:food_hub_app/provider/food_provider.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';
import 'package:provider/provider.dart';
enum RecordTab {
recipe('菜谱'),
@@ -29,7 +31,7 @@ class _RecordPageState extends State<RecordPage> {
RecipeTimeline(),
];
Widget buildTabs({
Widget _buildTabs({
required BuildContext context,
required RecordTab currentTab,
required ValueChanged<RecordTab> onTabChanged,
@@ -46,18 +48,35 @@ class _RecordPageState extends State<RecordPage> {
);
}
void _onTabChange(RecordTab tab, FoodProvider provider) {
setState(() {
_currentTab = tab;
});
switch (tab) {
case RecordTab.recipe:
provider.refreshRecipeList();
break;
case RecordTab.calendar:
provider.refreshRecordList(null, null);
break;
case RecordTab.timeline:
final year = DateTime.now().year;
provider.refreshRecordList("$year-01-01", "$year-12-31");
break;
}
}
@override
Widget build(BuildContext context) {
final provider = context.watch<FoodProvider>();
return Column(
children: [
buildTabs(
_buildTabs(
context: context,
currentTab: _currentTab,
onTabChanged: (tab) {
setState(() {
_currentTab = tab;
});
},
onTabChanged: (tab) => _onTabChange(tab, provider),
),
Expanded(
child: IndexedStack(index: _currentTab.index, children: _tabPages),