有没有办法确定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()