Android 判斷ListView滑動方向

yn6e 9年前發布 | 4K 次閱讀 Java Android

代碼很簡單,給mListView監聽onScrollListener事件,然后在onScroll進行判斷

//listView中第一項的索引
    private int mListViewFirstItem = 0;
    //listView中第一項的在屏幕中的位置
    private int mScreenY = 0;
    //是否向上滾動
    private boolean mIsScrollToUp = false;

@Override
public void onScroll(AbsListView absListView, int firstVisibleItem,int visibleItemCount, int totalItemCount) {

    if(mListView.getChildCount()>0)
    {
        boolean isScrollToUp = false;
        View childAt = mListView.getChildAt(firstVisibleItem);
        int[] location = new int[2];
        childAt.getLocationOnScreen(location);
        Log.d("onScroll", "firstVisibleItem= "+firstVisibleItem+" , y="+location[1]);

        if(firstVisibleItem!=mListViewFirstItem)
        {
            if(firstVisibleItem>mListViewFirstItem)
            {
                Log.e("--->", "向上滑動");
                isScrollToUp = true;
            }else{
                Log.e("--->", "向下滑動");
                isScrollToUp = false;
            }
            mListViewFirstItem = firstVisibleItem;
            mScreenY = location[1];
        }else{
            if(mScreenY>location[1])
            {
                Log.i("--->", "->向上滑動");
                isScrollToUp = true;
            }
            else if(mScreenY<location[1])
            {
                Log.i("--->", "->向下滑動");
                isScrollToUp = false;
            }
            mScreenY = location[1];
        }

        if(mIsScrollToUp!=isScrollToUp)
        {
            onScrollDirectionChanged(mIsScrollToUp);
        }

    }
}
private void onScrollDirectionChanged(boolean isScrollToUp) 
{

}</pre> 


 本文由用戶 yn6e 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!