mam LinearLayout
. Jedna strona ma alphabetic index
słów jak słownik, a drugi ma ListView
. Chciałbym przewinąć listę do określonego widoku po kliknięciu litery w indeksie alfabetycznym, zachowując ten widok indeksu stały.
Odpowiedzi:
1 dla odpowiedzi № 1Po zarejestrowaniu słuchaczy na indeksie alfabetycznym i ustaleniu, do którego elementu chcesz przewinąć, możesz użyć smoothScrollToPosition
(dodane w API 8) na liście:
mListView.smoothScrollToPosition(position);
Jeśli masz dużo przedmiotów, których możesz chcieć użyć smoothScrollToPositionFromTop
(dodane w API 11), aby przewijanie było szybsze. Lubię to:
mListView.smoothScrollToPositionFromTop(position, offset, duration);
Offsetowy tutaj jest skąd chcesz rozpocząć przewijanie i Trwanie jest oczywiste, ile czasu zajmie. Możesz zaimplementować własne algorytmy, aby obliczyć te wartości dla optymalnego przewijania.