android - ListView 每行都有动态 View

标签 android performance android-layout android-listview

我想在 ListView 中显示数据(为了更好的性能和回收),但是 ListView 的每一行都会有一个垂直的 LinearLayout但不能保证每个 LinearLayout 中有多少个 TextView

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

问题 由于在 ListView 中添加删除和添加动态 View ,性能非常慢。

我还有其他想法如何处理这种情况吗? 我应该选择 ScrollView 和垂直 LinearLayout 而不是 ListView 吗?

请帮忙。

如果我需要进一步说明,请告诉我。

最佳答案

如果您遇到性能缓慢的情况,您可能需要尽可能地摆脱 getView() 方法中的处理。每次创建项目(新的或回收的)时都会调用 getView() ,并且删除所有 View 并重新绘制它们有点违背了回收的目的。

如果您可以在将数据发送到适配器之前解析并简化数据,则可能会减轻 getView() 方法的一些负载,并有助于解决性能问题。

编辑:就像 M-WaJeEh 上面所说的那样,根据我的经验,使用 Visibility.VISIBLEVisibility.GONE 控制内容通常比更改获得的内容数量效果更好膨胀了。

关于android - ListView 每行都有动态 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15251910/

相关文章:

android - 将 String 与多个 ListView 项目进行比较

android - 将按钮添加到android中的gridview

java - 如何修复UnsupportedOperationException android

performance - plone.scale 注释膨胀(无用?)尺度

android - Spinner 在我的 Activity 开始时被激活

java - Android Jsoup HTML解析

php - 在 PHP (>= 5.0) 中,通过引用传递更快吗?

android - 对话框 ScrollView 不会正确包装内容

java - 在 Android 中对齐两个 TextView

c++ - push_back 的更快替代方案(大小已知)