Android,因为Kitkat不提供内部适配器视图的更新

时间:2013-12-02 23:35:25

标签: android listview baseadapter android-4.4-kitkat notifydatasetchanged

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

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

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

1 个答案:

答案 0 :(得分:1)

我们最后通过在ListView的BaseAdapter的getView()中添加以下块来完成:

if(Build.VERSION.SDK_INT >= 18) {
  parent.post(new Runnable() {
    @Override
    public void run() {
      (<inner adapter>).notifyDataSetChanged();
    }
  });
}