我们有一个带BaseAdapter的ListView,每行包含水平ListView(只是AdapterView)。 在KitKat(Android 4.4)扩展ListView中的一些行之前,它导致它为整个ListView分配getView(),它导致为该行的所有内部适配器项调用getView()。但是启动KitKat它不再像这样工作了 - 内部适配器只是没有收到任何会导致它更新其视图的消息。
它是KitKat优化的一部分吗?我们现在应该强制Android手动更新内部适配器视图吗?
更新: 在使用Android 4.3的Nexus 7上发现了同样的问题(不是在内部适配器视图上使用getView())
答案 0 :(得分:1)
我们最后通过在ListView的BaseAdapter的getView()中添加以下块来完成:
if(Build.VERSION.SDK_INT >= 18) {
parent.post(new Runnable() {
@Override
public void run() {
(<inner adapter>).notifyDataSetChanged();
}
});
}