我想在 ListView
中显示数据(为了更好的性能和回收),但是 ListView
的每一行都会有一个垂直的 LinearLayout
但不能保证每个 LinearLayout 中有多少个 TextView
。
目前我正在使用 ViewHolder
模式,并在 的
。注意:我在向其中添加 View 之前调用 getView()
方法中动态地将 View 添加到 LinearLayout
中 ListView linearLayout.removeAllViews()
,以消除 LinearLayout
中的重复 View 。
问题
由于在 ListView
中添加删除和添加动态 View ,性能非常慢。
我还有其他想法如何处理这种情况吗?
我应该选择 ScrollView
和垂直 LinearLayout
而不是 ListView
吗?
请帮忙。
如果我需要进一步说明,请告诉我。
最佳答案
如果您遇到性能缓慢的情况,您可能需要尽可能地摆脱 getView()
方法中的处理。每次创建项目(新的或回收的)时都会调用 getView() ,并且删除所有 View 并重新绘制它们有点违背了回收的目的。
如果您可以在将数据发送到适配器之前解析并简化数据,则可能会减轻 getView()
方法的一些负载,并有助于解决性能问题。
编辑:就像 M-WaJeEh 上面所说的那样,根据我的经验,使用 Visibility.VISIBLE
和 Visibility.GONE
控制内容通常比更改获得的内容数量效果更好膨胀了。
关于android - ListView 每行都有动态 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15251910/