我使用a ListView来显示与这些图像相关的一些图像和标题.我从互联网上获取图像.有没有办法延迟加载图像,以便文本显示时,UI不会被锁定,图像会在下载时显示?
图像总数不固定.
在ViewHolder模式中将ViewHolder设置为静态对性能至关重要吗?
ViewHolder对象将每个组件视图存储在Layout的标记字段中,因此您可以立即访问它们而无需重复查找它们.首先,您需要创建一个类来保存您的确切视图集.例如:
static class ViewHolder {
TextView text;
TextView timestamp;
ImageView icon;
ProgressBar progress;
int position;
}
Run Code Online (Sandbox Code Playgroud) 一个小小的新手问题.我们为什么要初始化ViewHolder的getView()?为什么我们不能在构造函数中初始化它?
我有一个带有自定义列表适配器的ListView.在getView()方法中,使用ViewHolder'模式',如ListView14.java的API演示中所示.当我第一次渲染列表时,它似乎正确加载.但是,我遇到的问题是,当我滚动列表时,我看到列表中的数据显示在错误的行中(例如,应该在第10行中的TextView显示在第2行中,例如).但是,当我不使用视图,而是每次都调用findViewById()时,列表视图会正确呈现.
我今天学习了Android的ArrayAdapter,发现有一个commom模式,它使用ViewHolder来保存Views的引用,而不是每次调用findViewById.
但它是如何工作的?适配器通常用于显示View(Group)的列表,如果我缓存View,为什么它们都没有引用最旧的?