场景是这样的:滑动列表快到最底部时,松开触摸,列表会继续滑到最底部,最后停止的时候,没有执行onScrollStateChanged方法,最后停在onScroll这个方法。
如果正常拖动到最底部,松开手指,最后是正常执行onScrollStateChanged方法。实在搞不明白是为什么了?

解决方案 »

  1.   

    因为onScroll是在“滑动”执行过之后才触发,
    onScrollStateChanged是“拖住滑动”
      

  2.   

    public void onScroll(AbsListView view, int firstVisibleItem,
    int visibleItemCount, int totalItemCount) {
    // TODO Auto-generated method stub
    Log.i("------------------->  onScroll ", "onScroll");
    } @Override
    public void onScrollStateChanged(AbsListView view, int scrollState) {
    // TODO Auto-generated method stub
    switch (scrollState) {
    case OnScrollListener.SCROLL_STATE_TOUCH_SCROLL:
    Log.i("------------------->  SCROLL_STATE_TOUCH_SCROLL ",
    "SCROLL_STATE_TOUCH_SCROLL");
    break; case OnScrollListener.SCROLL_STATE_FLING:
    Log.i("------------------->  SCROLL_STATE_FLING ",
    "SCROLL_STATE_FLING");
    break; case OnScrollListener.SCROLL_STATE_IDLE:
    Log.i("------------------->  SCROLL_STATE_IDLE ",
    "SCROLL_STATE_IDLE");
    break; } }楼主可以用这个log一下,并不是停在onScroll上的。
    滑动有三个状态  Touch Fling IDLE
    Fling 这个动作当然要视你的动作而定了