Flutter-如何一次且仅一次渲染listview.builder中的所有项目

Posted

技术标签:

【中文标题】Flutter-如何一次且仅一次渲染listview.builder中的所有项目【英文标题】:Flutter- How to render all items in the listview.builder at once and only once 【发布时间】:2021-12-31 11:24:00 【问题描述】:

我在 listview.builder 中出现颤振问题,它只渲染显示的项目,而不是所有项目(即使它们没有显示),当我向下或向上滚动时,它会渲染未显示的项目并重新渲染已经渲染的项目。 这实际上不是问题,手机内存只渲染显示的项目是好的,但对我来说,这是一个问题,因为我很难对项目进行一些操作。 这些操作就像从每件商品中获取数据,比如商品价格高于 100 美元,然后在屏幕底部打印它们的总金额。 我不能这样做,因为它没有显示所有项目以从中获取数据,并且当我向下滚动时,它会从未显示的项目中获取数据,但是当我向上滚动时,它再次从已经显示的项目中获取数据!

例如,如果显示的项目有这个数据 = 300,而未显示的项目有这个数据 = 800,一开始它会得到 300,当我向下滚动时,它会得到 1100,但是当我返回时起来,它会得到1400

我真的很想解决这个问题,它阻碍了我完成我的项目。 非常感谢您的宝贵时间。

【问题讨论】:

我不太好,但你可以查看SingleChildScrollView 【参考方案1】:

我只将Listview.builder 放入SingleChildScrollView 就解决了问题,这样就解决了所有问题。

【讨论】:

以上是关于Flutter-如何一次且仅一次渲染listview.builder中的所有项目的主要内容,如果未能解决你的问题,请参考以下文章

欧拉图基本概念

欧拉道路与欧拉回路

Fleury 欧拉回路

图与网络优化

算法欧拉(回)路与哈密尔顿环

新知识添加·欧拉回路+欧拉路径