在颤振形式的sqlite数据库中,在列表视图中加载7000多个项目的内存有效方法是啥
Posted
技术标签:
【中文标题】在颤振形式的sqlite数据库中,在列表视图中加载7000多个项目的内存有效方法是啥【英文标题】:What is the memory efficient way to load 7000+ items in list view in flutter form sqlite database在颤振形式的sqlite数据库中,在列表视图中加载7000多个项目的内存有效方法是什么 【发布时间】:2020-01-28 14:59:54 【问题描述】:我是 Flutter 的新手,我创建了一个应用程序,该应用程序将 7000 多个项目预加载到数据库中。我想在列表视图中显示所有这些项目。我目前正在查询数据库一次并将所有内容加载到内存中并使用 ListView 类显示它。
ListView.separated(
separatorBuilder: (context, int)
return Divider(height: 0);
,
controller: scrollController,
padding: const EdgeInsets.only(top: 5, bottom: 5),
itemCount: data.length,
itemBuilder: (context, int position)
Map<String, dynamic> value = data[position];
return ListTile(title: value['value']);
,
);
我发现这样做我的列表视图很滞后并且表现不佳。这是正确的方法吗?还是我做对了,但搞砸了其他事情?
【问题讨论】:
不指定itemCount
。可以试试吗??无论如何,如果您要在内存中选择 7k+ 个项目,这是主要问题。即使ListView
可以有效地显示,您仍然有 7k+ 项在内存中。我想分页是解决方案就在这里。
DON'T LOAD 7000+ Items,没有人会看那么多项目...去分页视图并在列表视图滚动上查询数据库..
您的列表视图是否也落后于发布版本?请记住,当您运行应用程序的非发布版本时,它缺乏一些优化和性能改进。因此,请尝试使用发布编译的 apk
@mdexp 这就是问题所在。我怎么错过了?谢谢。
我将其发布为答案,以便您可以将问题标记为已解决
【参考方案1】:
您的列表视图是否也落后于发布版本?
请记住,当您运行应用的非发布版本时,它缺少一些优化和性能改进。因此,请尝试使用 release 编译的 apk。
【讨论】:
以上是关于在颤振形式的sqlite数据库中,在列表视图中加载7000多个项目的内存有效方法是啥的主要内容,如果未能解决你的问题,请参考以下文章