使用 ListView-Adapter 预加载更多视图

Posted

技术标签:

【中文标题】使用 ListView-Adapter 预加载更多视图【英文标题】:Preload more Views using a ListView-Adapter 【发布时间】:2014-04-23 08:30:19 【问题描述】:

如果我理解正确,ListView-Adapter 会再加载 1 个视图,然后在屏幕上当前可见。让我们说视图 1 到 5,加上不可见但预加载的视图 6。如果用户向下滚动,视图 1 将被关闭并显示视图 6。我想知道如何预加载更多视图,例如示例中的视图 6,而不是只有一个视图,例如三个视图。 我希望通过增加 preloaded-view-count 给 ListView 项目更多的时间来计算视图/获得更流畅的滚动体验。

由于相关关键词的主题太多,所以简要列出这个问题不是关于的:

加载 ListView 数据模型(从 Web/DB 获取数据) 到达 ListView 末尾时加载更多数据 这与 ViewHolder 模式无关(回收视图)

PS:Google 有点难——所有出现在我脑海中的关键词都已经被其他主题占用了……

【问题讨论】:

这没有回答你的问题,但它解释了回收的工作原理,所以它可能有用***.com/questions/11945563/… @sherpya 感谢您的链接。有一些关于高度和宽度计算的提示对我来说是新的。 你找到改变预加载项数的方法了吗? 不管怎样,如果您在滚动平滑度方面遇到问题,添加更多视图不会使滚动更平滑,通过创建更多布局和计算会使情况变得更糟。您最好对代码进行分析以确定缓慢的来源并找出优化布局、绘制或适配器绑定的位置。 【参考方案1】:

负责控制何时隐藏/显示视图的类是LayoutManager.

我不太熟悉该类的内部工作原理,但我想您可以创建一个自定义 LayoutManager 来覆盖一些相关部分来实现您需要的功能。

【讨论】:

以上是关于使用 ListView-Adapter 预加载更多视图的主要内容,如果未能解决你的问题,请参考以下文章

用于预加载整个流的 Html 音频标签

Redux - 管理预加载状态

recyclerview加载更多后怎么从头加载列表

JS实现图片预加载无需等待

Preload图片预加载(jQuery插件)

怎么让android中 viewpager 不预先加载?