在有像 1,00,000 这样的大量孩子的列表视图中使用 AutomaticKeepAliveClientMixin 是不是很好?

Posted

技术标签:

【中文标题】在有像 1,00,000 这样的大量孩子的列表视图中使用 AutomaticKeepAliveClientMixin 是不是很好?【英文标题】:Is it good to use AutomaticKeepAliveClientMixin in listview having large amount of children like 1,00,000.?在有像 1,00,000 这样的大量孩子的列表视图中使用 AutomaticKeepAliveClientMixin 是否很好? 【发布时间】:2020-11-16 17:54:51 【问题描述】:

我正在使用 AutomaticKeepAliveClientMixin 使列表视图中的小部件保持活动状态,但是在滚动时感觉它挂了很多,我的意思是滚动不流畅,并且列表中还有重复的小部件。

【问题讨论】:

您是否在调试模式下运行您的应用程序? 是的,我在我的 AVD 模拟器中运行它。 模拟器不同,调试模式不同。 不,我没有在调试模式下运行它 要知道你的应用程序在debug模式下运行,如果你没有设置,你会在你的应用程序的右上角看到一个类似红色丝带的东西(上面写着调试) debugShowCheckedModeBanner: 为假 【参考方案1】:

debug mode 中,编译器为所有变量发出调试符号并按原样编译代码。 debug模式下你无法判断你的应用性能

release mode 中包含一些优化:

    根本不编译未使用的变量 如果某些循环变量被证明是不变量,编译器会将其从 loop.p 中取出。 不包括用debug指令编写的代码等。

只有在发布模式下,您才能判断您的应用性能。所以,不用担心应用的流畅度或性能

【讨论】:

但是我可以在 listview 中使用 AutomaticKeepAliveClientMixin 来处理 10 万个或更多的小部件吗,它是否会因负载过多而影响应用程序的性能 我猜它可能会影响应用程序的性能,因为 10 万是一个很大的数字。【参考方案2】:

如果要在 ListView 中显示 1,00,000 个项目,则应考虑使用 Pagination。我相信这将有助于提高性能。

【讨论】:

以上是关于在有像 1,00,000 这样的大量孩子的列表视图中使用 AutomaticKeepAliveClientMixin 是不是很好?的主要内容,如果未能解决你的问题,请参考以下文章

R中是不是有像bigmemory这样的包可以处理大型列表对象?

如何正确设置列表视图的高度

是否有像 DatePicker 这样的组件来选择字符串值?

Haskell 有像 Python 和 Ruby 这样的 splat 运算符吗?

如果可扩展列表视图android中的孩子为空,如何单击组

合并大量 xts 对象