Смещение прокрутки 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 ()

Intereting Posts