import 'package:flutter/material.dart'; import 'package:item_tracker/screens/addItem/add_item_screen.dart'; import '../database/sqlite_operation.dart'; class ItemListScreen extends StatefulWidget { @override _ItemListScreenState createState() => _ItemListScreenState(); } class _ItemListScreenState extends State { late Future>> _itemsFuture; @override void initState() { super.initState(); _itemsFuture = getAllItems(); // 初始化 Future } Future _refreshData() async { setState(() { _itemsFuture = getAllItems(); // 更新 Future,触发 FutureBuilder 重新加载数据 }); } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text('物品列表'), ), body: RefreshIndicator( child: FutureBuilder>>( future: _itemsFuture, // 绑定到可变的 Future 对象 builder: (context, snapshot) { if (snapshot.connectionState == ConnectionState.waiting) { return Center(child: CircularProgressIndicator()); } else if (snapshot.hasError) { return Center(child: Text('Error: ${snapshot.error}')); } else { final items = snapshot.data ?? []; return ListView.builder( itemCount: items.length, itemBuilder: (context, index) { final item = items[index]; return ListTile( title: Text(item['name']), subtitle: Text(item['context']), ); }, ); } }, ), onRefresh: _refreshData, ), 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, ), ), ); } }