ListView具有每行的动态视图

时间:2013-03-06 15:51:38

标签: android performance android-layout android-listview

我想在ListView中显示数据(为了获得更好的效果和回收)但ListView的每一行都有一个垂直LinearLayout,但不保证有多少TextViews ViewHolder 1}}将出现在每个LinearLayout中。

目前我正在使用LinearLayout模式,我正在getView() ListView方法中linearLayout.removeAllViews()动态添加视图。注意:我在向其添加视图之前调用LinearLayout,以便消除ListView中的重复视图。

Prolem 由于在ScrollView中添加删除和添加动态视图,性能非常慢。

还有其他想法如何处理这种情况? 我更喜欢LinearLayout和垂直ListView而不是{{1}}吗?

请帮助。

如果我方需要进一步澄清,请告诉我。

1 个答案:

答案 0 :(得分:2)

如果您遇到性能下降的问题,您可能需要尽可能多地去除getView()方法中的处理。每次创建项目(新的或回收的)时都会调用getView()并删除所有视图并重新绘制它们会破坏回收的目的。

如果您可以在将数据发送到适配器之前解析数据并对其进行简化,那么getView()方法可能会减少一些负担并帮助您解决性能问题。

编辑:就像上面提到的M-WaJeEh一样,使用Visibility.VISIBLEVisibility.GONE来控制内容通常比我改变膨胀的事物的数量更有效。