有没有办法确定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的滚动偏移量?我似乎无法找到一个好的解决方案。
答案 0 :(得分:4)
使用此功能。
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
值
答案 1 :(得分:1)
您可以使用GridView.getFirstVisiblePosition()
。
http://developer.android.com/reference/android/widget/AdapterView.html#getFirstVisiblePosition()