我的ListView填充的列表项每个都包含从互联网获取数据的initState方法。因此,当我滚动浏览列表而看不到项目时,它们就会离开小部件树,而当我再次向上滚动至它们时,它们将重新渲染,并再次获取数据。
我不希望发生这种情况,因此在滚动时是否有任何方法可以缓存数据或不将其从渲染树中删除?
最佳答案
请查看此问题和答案。 how to build dynamic list from http server in flutter?
您应该做的是在第一次收到数据后就对其进行缓存。您还需要使用ListView.builder
。该小部件具有itemBuilder
方法。您应该定义自己的方法getItem(int index)
。此方法将使用索引在缓存中查找数据,如果找不到该数据,它将发出http请求并将其保存在缓存中。
关于dart - Flutter阻止ListView重新呈现其子级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51438200/