import 'package:flutter/material.dart'; import 'package:item_tracker/provider/item_provider.dart'; import 'package:item_tracker/screens/addItem/add_item_screen.dart'; import 'package:provider/provider.dart'; class ItemListScreen extends StatefulWidget { @override _ItemListScreenState createState() => _ItemListScreenState(); } class _ItemListScreenState extends State { late ItemProvider _itemProvider; @override void initState() { super.initState(); Future.microtask(() { _itemProvider = Provider.of(context, listen: false); _itemProvider.loadItems(); }); } Future _refreshData() async { await _itemProvider.loadItems(); // 刷新数据 } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text('物品列表'), ), body: Consumer(builder: (context, provider, _) { final items = provider.items; if (items.isEmpty) { return Center(child: Text("暂无物品")); } return RefreshIndicator( onRefresh: _refreshData, child: ListView.builder( itemCount: items.length, itemBuilder: (_, index) { final item = items[index]; return ListTile( title: Text(item.name), subtitle: Text(item.description ?? ""), ); })); }), floatingActionButton: FloatingActionButton( onPressed: () async { final shouldRefresh = await Navigator.push( context, MaterialPageRoute(builder: (context) => AddItemScreen()), ); print('shouldRefresh${shouldRefresh}'); if (shouldRefresh == true) { print('刷新中'); _refreshData(); } }, child: Icon( Icons.add, color: Colors.white, ), ), ); } }