0

我们有一个带有 BaseAdapter 的 ListView,每一行都包含水平 ListView(只是 AdapterView)。在 KitKat (Android 4.4) 扩展 ListView 中的某些行之前,它会触发整个 ListView 的 getView() 并导致调用该行的所有内部适配器项的 getView()。但是启动 KitKat 它不再像这样工作了 - 内部适配器只是没有收到任何会导致它更新其视图的消息。

它是 KitKat 优化的一部分吗?我们现在是否应该强制 Android 手动更新内部适配器视图?

更新:在带有 Android 4.3 的 Nexus 7 上发现了同样的问题(不会在内部适配器视图上触发 getView())

4

1 回答 1

1

最后,我们在 ListView 的 BaseAdapter 的 getView() 中添加了以下代码块:

if(Build.VERSION.SDK_INT >= 18) {
  parent.post(new Runnable() {
    @Override
    public void run() {
      (<inner adapter>).notifyDataSetChanged();
    }
  });
}
于 2013-12-04T05:31:25.213 回答