Как программно прокрутить до определенной позиции в ListView
?
Например, у меня есть String[] {A,B,C,D....}
, и мне нужно установить верхний видимый элемент в ListView
индекс 21 моего String[]
.
android
android-listview
Maxime
источник
источник
Ответы:
Для прямой прокрутки:
Для плавной прокрутки:
источник
smoothScrollToPosition
не работает, любое предложение?listView.post(() -> listView.smoothScrollToPosition());
Для SmoothScroll с длительностью прокрутки:
getListView().smoothScrollToPositionFromTop(position,offset,duration);
Примечание: из API 11.
Ответ HandlerExploit был тем, что я искал, но мой просмотр списка довольно длинный, а также с алфавитной прокруткой. Тогда я обнаружил, что та же функция может принимать и другие параметры :)
Изменить: (Из предложения AFDs)
Чтобы разместить текущий выбор:
источник
Поместите ваш код в обработчик следующим образом:
а затем вызвать этот метод, как,
CHEERS !!!
источник
Я установил OnGroupExpandListener и переопределил onGroupExpand () как:
и использовать метод setSelectionFromTop (), который устанавливает выбранный элемент и размещает выделенные пиксели y от верхнего края ListView. (Если в сенсорном режиме, элемент не будет выбран, но он все равно будет располагаться соответствующим образом.) (Документы для Android)
источник
По
Listview
умолчанию прокрутка будет расположена вверху, но если она не видна, ее нужно прокрутить:источник
Если кто-то ищет похожую функциональность, такую как приложение Gmail,
По умолчанию свиток Listview будет располагаться сверху. Спасибо за подсказку. amalBit. Просто вычтите это. Вот и все.
источник
Если кто-то заинтересован в обработке списка, просмотрите одну строку вверх / вниз, используя кнопку. затем.
источник
Если вы хотите перейти прямо к нужной позиции в списке, просто используйте
listView.setSelection (int position);
и если вы хотите плавно перейти к нужной позиции в listView, просто используйте
listView.smoothScrollToPosition (int position);
источник
Это то, что сработало для меня. Комбинация ответов от amalBit & Melbourne Lopes
а затем вызвать этот метод как:
источник
его легкий выбор list-view.set (вы поз); или вы можете сохранить свою позицию с помощью sharedprefrence, и, когда вы начинаете деятельность, она получает настройки и выбирает этот int
источник
-Если вы просто хотите, чтобы список прокручивался вверх \ до определенной позиции:
-Если вы хотите получить позицию определенного элемента в myListView:
-Также это
myListView.getVerticalScrollbarPosition(i);
может помочь вам.Удачи :)
источник
Вам нужно две вещи, чтобы точно определить положение прокрутки listView:
Чтобы получить текущую позицию прокрутки listView:
Чтобы установить положение прокрутки listView:
источник
Я нашел это решение, чтобы позволить прокручивать вверх и вниз, используя две разные кнопки.
По предложению @Nepster я реализую прокрутку программно, используя getFirstVisiblePosition () и getLastVisiblePosition (), чтобы получить текущую позицию.
источник