GridView的滚动偏移量



有没有办法确定GridView的当前滚动偏移量或滚动位置?

View.getScrollY() // Underlying var is not updated during a scroll.

我曾尝试设置OnScrollListener,但onScroll回调不够细粒度。

以下是我如何尝试使用OnScrollListener来确定滚动偏移量。

private int getScrollY() {
    int top = 0;
    if (mGridView.getChildCount() > 0) {
        final View firstView = mGridView.getChildAt(0);
        top = firstView.getTop();
    }
    return top;
}

此代码的问题在于,向上滚动时返回的y偏移量不准确;俯视图被循环使用,因此,y偏移量似乎在跳跃;

有没有一种计算GridView滚动偏移量的好方法?我似乎找不到一个好的解决办法。

使用这个。

public class CustomGridView extends GridView {
    public CustomGridView(Context context) {
        super(context);
    }
    public CustomGridView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }
    public CustomGridView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }
    /* ADD THIS */
    @Override
    public int computeVerticalScrollOffset() {
        return super.computeVerticalScrollOffset();
    }
}

调用时返回int

您可以使用GridView.getFirstVisiblePosition()

http://developer.android.com/reference/android/widget/AdapterView.html#getFirstVisiblePosition()

最新更新