我正在尝试创建可以通过使用RefreshIndicator
刷新的项目列表。我已经使用Stream
创建了Future
,并向其中添加了StreamBuilder
用户界面。我还将Future呼叫附加到RefreshIndicator。由于某些原因,当我进行刷新时,UI不会更新。我认为这与我如何设置Stream和Future有关。有人可以看一下并让我知道我做错了什么吗?预先感谢!
这是用户界面
class EntityList extends StatelessWidget {
@override
Widget build(BuildContext context) {
var appProvider = Provider.of<AppProvider>(context);
var opsProvider = Provider.of<OperationsProvider>(context);
return StreamBuilder(
stream: opsProvider.getEntitiesStream(),
builder: (BuildContext context, AsyncSnapshot snapshot) {
return snapshot.hasData ? RefreshIndicator(
onRefresh: () => opsProvider.getEntities(),
child: Container(
height: double.maxFinite,
child: ListView.builder(
itemCount: snapshot.data['content'].length,
itemBuilder: (BuildContext context, int index) {
......
}
)
),
) : Center(child: CircularProgressIndicator());
},
);
}
}
这是Provider类:
class OperationsProvider extends ChangeNotifier {
Future getEntities() async {
return await ApiService.get(Config.kpis + 'dashboard?page=0&size=15');
}
Stream getEntitiesStream() async* {
yield await this.getEntities();
}
}