Android 列表视图回收

Android 列表视图回收,android,listview,Android,Listview,关于lisview循环,我正在使用viewholder重用视图,但现在我需要添加一些不清晰的视图(ImageView和TextView)(视图的数量并不总是相同) 如何添加这些项,而不在每个getView()方法上创建新视图,也不影响列表的性能? 如果不重写getView(),就无法创建不同的布局。您可以根据需要重用任意多的视图类型,请阅读答案 如果您有性能问题,请尝试一个新的widjet,可在Support-V7库中找到。我的策略是在每次调用getView()时实现您描述的内容而不创建新视图

关于lisview循环,我正在使用viewholder重用视图,但现在我需要添加一些不清晰的视图(ImageView和TextView)(视图的数量并不总是相同)


如何添加这些项,而不在每个getView()方法上创建新视图,也不影响列表的性能?

如果不重写
getView()
,就无法创建不同的布局。您可以根据需要重用任意多的视图类型,请阅读答案


如果您有性能问题,请尝试一个新的widjet,可在
Support-V7
库中找到。

我的策略是在每次调用getView()时实现您描述的内容而不创建新视图:

假设您最多有10个图像视图。视图xml将包含10个ImageView项, 但是,当调用getView()时,您将把不需要的元素的可见性设置为View.GONE,并将只需要的元素设置为View.Visible


对我来说效果很好,这是不创建新视图的唯一原因…

你能分享适配器的代码吗?如此多的xml和viewholder视图不会降低滚动性能吗?根据我的经验,只要你使用如此多的视图可见性(而不是更多)、UI线程(和滚动速度)不会受到影响。除此之外,你真的没有更好的解决办法。正如@dimetil所说,使用RecyclerView可以更好地使用这个案例(用我的方法),因为它有属性-mRecyclerView.setHasFixedSize(false),它正好解决了动态地大量更改视图参数的问题。。