我有一个由baseadapter提供的列表视图。
当数据发生变化时,我调用baseadapter.notifydatasetchanged。一切正常。
现在我想知道,如果我在某个列表项中更改了一些小细节,是否有一些优化的方法来更新显示在屏幕上的单个项的视图?
我认为notifydatasetchanged盲目地重建列表中所有可见项的视图,如果项中发生微小的更改,这不是最佳选择。
最佳答案
不,除非实现自己的类扩展,否则这是不可能的。
这里有source code表示ListView
。
您将看到,setAdapter()
仅使用ListView
将自己注册为观察者
而amAdapter.registerDataSetObserver(mDataSetObserver);
不提供在某个位置通知变更的方法。
但是,可能不需要通知某些项的更新,因为据我所知,aDataSetObserver
只呈现和更新屏幕上当前看到的项,因此,这里不需要优化。