Я долго искал ответ на этот вопрос, но ничего не смог найти. Моя проблема. У меня есть RecyclerView с LinerLayout, SnapHelper, так что центральный элемент расположен точно в центре. Мне нужно было прокрутить до последнего или первого элемента списка. Для этого я использовал следующий код:
layoutManager.scrollToPosition(position);
recyclerView.post(()->{
View view = layoutManager.findViewByPosition(position);
if (view != null) {
int[] snapDistance = snap.calculateDistanceToFinalSnap(layoutManager, view);
if (snapDistance[0] != 0 || snapDistance[1] != 0) {
recyclerView.scrollBy(snapDistance[0], snapDistance[1]);
}
}
});
Но в этом случае, когда я пытаюсь прокрутить список до последнего или первого элемента, список не прокручивается дальше, чем середина, то есть Мне нужно прокрутить до 300 элементов, но только прокрутить до 297. Установив stackFromEnd = true, я смог прокрутить список до последнего элемента, но пока первая прокрутка по-прежнему не работает. После того, как я попытался использовать smoothScrollToPosition (), все стало хорошо работать, но анимация мне не нравится, я бы хотел ее отключить. Можно ли реализовать прокрутку до первого / последнего элемента без smoothScrollToPosition? Если да, скажи мне как. В противном случае, скажите мне, как я могу отключить анимацию прокрутки. Заранее спасибо за любую помощь.