【问题标题】:Android listview updating too many timesAndroid listview 更新太多次
【发布时间】:2014-01-06 10:48:05
【问题描述】:

在我的主要活动布局 (RelativeLayout) 中,我在其他按钮和文本视图中显示三个垂直方向的列表视图。我的问题是,当其中一个列表视图(屏幕左侧的那个)更新时,另外两个也会更新,导致 UI 性能不佳。

我知道在一个视图的大小影响另一个视图的位置(导致另一个重绘)的情况下,RelativeLayout 可能会很棘手,因此我确保两个列表视图的位置与左侧无关列表视图的大小。

我还查看了有关如何使列表视图重绘更高效、使用 ViewHolders 等的技巧,但我宁愿解决这个问题的核心。

更多细节:

  • 对于左侧列表视图的适配器,我将 ArrayAdapter 类作为子类。
  • 对于其他两个列表视图的适配器,我使用 CursorAdapter 类的子类。

【问题讨论】:

    标签: android performance listview android-relativelayout


    【解决方案1】:

    尝试使用相同的适配器类以获得更好的性能,因为执行时间因您要显示的数据类型而异。

    【讨论】:

      【解决方案2】:

      如果您将android:layout_height="wrap_content" 设置为您的ListView,那么系统会尝试找到每个元素的最佳大小并多次调用getView。除了使用android:layout_height="fill_parent"

      http://www.androiddevelopersolutions.com/2013/07/android-listview-adapter-getview-called.html custom listview adapter getView method being called multiple times, and in no coherent order

      【讨论】:

      • 我已经检查过了。即使是固定的布局高度和重量也不行。
      【解决方案3】:

      你是对的罪魁祸首RelativeLayout,使用其他一些视图来代替它,比如带有android:weightSum等的LinearLayout...

      【讨论】:

        猜你喜欢
        • 2012-02-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多