Czy istnieje sposób określenia bieżącego przesunięcia przewijania lub pozycji przewijania w widoku GridView?Przesunięcie przewijania GridView
View.getScrollY() // Underlying var is not updated during a scroll.
Próbowałem ustawienie OnScrollListener ale onScroll zwrotna nie jest w porządku, tyle drobnoziarnisty do moich celów.
Oto, w jaki sposób próbuję określić przesunięcie przewijania za pomocą OnScrollListener.
private int getScrollY() {
int top = 0;
if (mGridView.getChildCount() > 0) {
final View firstView = mGridView.getChildAt(0);
top = firstView.getTop();
}
return top;
}
Problem z tym kodem jest, że wrócił y offset jest niedokładna przy przewijaniu w górę; widok z góry jest poddawany recyklingowi, a zatem przesunięcie y wydaje się przeskakiwać;
Czy istnieje dobry sposób obliczania przesunięcia przewijania GridView? Nie mogę znaleźć dobrego rozwiązania.
Oh dziękuję za odpowiedź! Zapomniałem sam o tym odpowiedzieć, po tym, jak go zrozumiałem. – mdupls
@mdupls Wydaje się, że daje poprawne przesunięcie Y. Ale jakiej funkcji używasz do ustawienia Gridview do tego samego przesunięcia? Próbowałem wielu i nie mogę uzyskać poprawnych wyników. Zawsze kończy się w różnych pozycjach. Zgaduję, to nie jest tak proste, jak myślałem. –
gridview.smoothScrollToPosition (indeks int) – mdupls