Android:在Android中,选择ViewwGroup然后选择ListView是否更好?
我需要一个项目列表,其中每个项目都包含Android:在Android中,选择ViewwGroup然后选择ListView是否更好?,android,listview,Android,Listview,我需要一个项目列表,其中每个项目都包含 文本视图 进度条 下载按钮 取消按钮 当我点击下载按钮时,progressBar启动并运行良好。我已将每个行视图绑定到数据对象。下载任务中,即;asynctask我正在使用此视图进行更新。但是当我滚动列表时,进度在不同的行和实际的行是可见的。我不知道原因是什么 因此,我决定避免使用listview,而是创建Viewgroup,然后将所有视图线性添加到这些视图中。(但我不知道如何处理下载、按钮和取消按钮)这是好方法还是其他可能的方法?表演角色?谁能帮我解决这
SrinivasAndroid正在大量重用构成ListView每个窗口的视图。当您滚动这些视图时,它们会被一次又一次地重复使用,因此您需要注意在项目变得隐藏/可见时为其重新分配正确的进度状态 我建议不要创建一个或两个以上的AsyncTask,因为您肯定会用太多的线程阻塞系统 你的名单有多长 如果<10项(四舍五入,需要检查)。我会从ListView切换到
- 滚动视图
- 线性布局
- 项目1
- 项目2
- 项目3
- 线性布局
onClick
处理程序中使用该标记:
public void handleClick(View v) {
// use v.getTag();
}
您可以通过android:Tag=“1234”或在代码中在XML中定义标记
如果您知道ViewParent是什么(哪个类),那么还可以将其强制转换到相应的类,并从中获取“标记” 因此,进度条在不同的行中可见的原因是因为操作系统有一个视图池,它正在重用该视图池来绘制列表的可见部分。下面是一个关于如何使用ViewHolder处理此类问题的好例子我的列表是动态的。当我单击时,前7项包含一个按钮中的每个按钮。列表会随着其他行的集合而增长。考虑到您程序的动态特性,我仍然同意我的想法。由于Listview一直在循环使用视图,因此始终恢复每个项目的状态将非常繁琐。如果你的时间没有那么长,你可能也不会有很大的性能问题。