2

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

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

此行为的原因可能与我对ListView. 我的方法大致基于Chet Haase 的示例- aDataSetObserver还接收我的适配器onDataSetChange(除了)并通过将 an 添加到's来ListView启动动画。动画在(使用)中完成,耗时 300 到 600 毫秒。如果我评论启动动画的行,那么行为就像我想要的那样。在位置 0、1、2、3 以及随后的 0、1、2、3、4、5、6 位置调用。onPreDrawListenerListViewViewTreeObserveronPreDrawListenerView.animategetView

LogCat 摘自说明我的问题

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

截图

4

0 回答 0