在notifyDatasetChanged之后没有调用适配器的getView

时间:2013-07-04 23:03:28

标签: android listview animation

简短版本: 在加载数据时,我的适配器中的数据集数量(从最初4开始)增长。正常对于位置0到3调用getView。在新数据到达后(getCount现在返回7),查询位置4到6。相反,我想立即更新前4项。

我的问题 - 当ListView被解雇时,如何在0到3位置再次getView查询notifyDataSetChanged

此行为的原因可能与我对ListView中的项目所做的一些动画有关。我的方法基于Chet Haase's example - DataSetObserver也接收我的适配器onDataSetChange(除ListView之外)并通过添加onPreDrawListener启动动画到ListView的{​​{1}}。动画在ViewTreeObserver中完成(使用onPreDrawListener),需要300到600毫秒。 如果我取消启动动画的行,则行为就像我想要的那样。对于位置0,1,2,3以及随后的0,1,2,3,4,5,6调用View.animate

LogCat excerpt from illustrating my problem

以下屏幕截图(左侧)显示了此不良状态下列表的内容。将其与logcat屏幕截图进行比较 - 视图上的文本与logcat中“View Text =”之后的文本相匹配。右边是ListView最终决定重新查询位置1-4的getView后最终解决的问题。

screenshots

0 个答案:

没有答案