如何在项目添加到列表时通知用户,而无需在 flutter 中刷新整个列表

问题描述 投票:0回答:2

在flutter中,我有一个listView,它从列表中获取它的项目,并且该列表是从互联网下载的,每当将新项目添加到列表中时,我都会有一个事件告诉应用程序添加了新项目,为此我使用notifyListners () 刷新列表视图以显示新项目, 我使用此方法的问题是,有时列表中存在大尺寸的项目,并在新项目出现时刷新所有项目,这确实会减慢应用程序的速度,而且用户体验非常糟糕,我想做的是获取列表一次,仅通知应用程序有关新项目的信息

flutter list listview provider flutter-change-notifier
2个回答
0
投票
ListView.builder(
    itemCount: items.length,
    itemBuilder: (context, index) {
      return ListTile(
        title: Text(items[index]),
        // You can add more customization here
      );
    },
  ),
)

您可以使用 ListView.builder 代替列表视图。

ListView.builder 是一个方便的小部件,用于高效创建可滚动的小部件列表。它只为当前视图中的项目创建小部件,这使得它对于大型列表非常有效。


0
投票

您只能更新新添加的项目

class ItemProvider with ChangeNotifier {
 List<Item> _items = [];

 void addItem(Item newItem) {
   _items.add(newItem);
   notifyListeners();
 }

 List<Item> getItems() {
   return _items;
 }
}

在列表视图中,只有 itemwidget 会被重建,而不是所有列表

ListView.builder(
 itemCount: provider.getItems().length,
 itemBuilder: (context, index) {
   return ItemWidget(item: provider.getItems()[index]);
 },
);
© www.soinside.com 2019 - 2024. All rights reserved.