检测BaseAdapter.notifyDataSetChanged()何时完成

hie*_*pnh 19 android baseadapter

我想知道什么时候BaseAdapter.notifyDataSetChanged()完成,然后做声音.我的代码:

BaseAdapter.notifyDataSetChanged();  
mScroller.startScroll(oldX, 0, dx, 0);
Run Code Online (Sandbox Code Playgroud)

mScrollernotifyDataSetChanged()完成之前滚动 .我想在完成后mScroller滚动到.oldXnotifyDataSetChanged()

请帮帮我,谢谢.

Cor*_*ehn 8

BaseAdapter支持注册一个DataSetObserver可以监听onChanged事件的位置,而不是扩展。

notifyDataSetChanged方法将引发此事件。

adapter.registerDataSetObserver(new DataSetObserver() {
    @Override
    public void onChanged() {
        // ...
    }
});

...

adapter.notifyDataSetChanged();
Run Code Online (Sandbox Code Playgroud)


kar*_*.io -1

我遇到了同样的问题,最后我这样做了-

 BaseAdapter.notifyDataSetChanged();  
 new Handler().postDelayed(new Runnable() {
      @Override
              public void run() {
                 mScroller.startScroll(oldX, 0, dx, 0);
                //write scroll code here
               }
       },50);  //scroll after 50ms
Run Code Online (Sandbox Code Playgroud)

  • 我曾经也这样做过,我遇到的问题是它是时序驱动的而不是事件驱动的,所以你必须猜测正确的时序,然后它可以根据运行它的设备轻松改变,因为较新的设备可能比某些设备快得多较旧的设备。 (2认同)