Flutter ListView优化
在 框架中显示具有滚动偏移量的大/不定式列表可能会令人无法接受地缓慢(取决于偏移量大小)。
当所有项目都具有相同大小时,可以通过指定 itemExtend 来解决此问题。
但是,即使所有列表项的大小相同,通常也不可能事先知道 itemExtend ,因为高度可能取决于字体大小,而字体大小取决于用户电话的可访问性设置。
有什么方法可以向 指示所有列表项具有相同的大小,而又不知道确切的大小是多少?
如果没有,有什么办法可以先计算列表项小部件的大小(然后使用它来设置 itemExtend )?
回答:
我不相信有一种方法可以首先自动计算窗口小部件的大小,但是您可以根据需要进行任意手动计算。
您可以使用DefaultTextStyle.of(context)
来获取封闭上下文的字体大小,并在需要时使用LayoutBuilder来获取列表的最大宽度。然后,您可以使用这些信息来设置itemExtent
。
但是,如果使用CustomScrollView和SliverPrototypeExtentList,则可以得到所需的结果。您只需提供您的原型以及SliverChildDelegate(可能是SliverChildBuilderDelegate),其余的就应该弄清楚。
最后…我有点好奇您是否要共享代码中实际实例化列表的部分(以及其中显示的内容)。以我的经验,
您可以在ListView上扔很多东西,并且仍然保持顺畅,因此您可能正在执行其他操作,从而导致速度变慢。在调试模式下,这当然是非常不同的。
以上是 Flutter ListView优化 的全部内容, 来源链接: utcz.com/qa/431521.html