安卓獲取ListView、GridView等滾動的距離(高度)


public int getScrollY() {
    View c = mListView.getChildAt(0);
    if (c == null) {
        return 0;
    }
    int firstVisiblePosition = mListView.getFirstVisiblePosition();
    int top = c.getTop();
    return -top + firstVisiblePosition * c.getHeight() ;
}

原理是假設每個item的高度是一定的(多數情況下的確如此),那么只要知道當前在第幾個item,就可以計算出總的高度,因為第一個可見item的一部分可能已經移出了邊界,所以再通過mListView.getChildAt(0)獲得第一個子view,使用getTop()方法計算出這個偏差。綜合起來就可以計算出當前ListView的滾動高度。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM