Как сделать зацикливание RecyclerView в Kotlin? - PullRequest
0 голосов
/ 15 февраля 2020

Существуют методы, которые можно применять внутри класса RecyclerView.Adapter в качестве решения, например, возвращать большие числа в функции getItemCount() (скажем, dataList.size * 10) и определять позицию адаптера внутри onBindViewHolder() как adapterPosition%dataList.size. Это создает большое пространство для перемещения RecyclerView во время прокрутки, а оператор % делает переход позиции адаптера к элементу на другом конце (модульная арифметика c). Поэтому возможно иметь конечное l oop.

Однако этот метод не кажется эффективным решением, особенно для больших данных. Я не уверен, хотя. Возможно это не использует много ресурсов. Было бы неплохо, если бы вы могли предоставить некоторую теоретическую информацию.

В любом случае, я стремлюсь к более правильному решению и реальному бесконечному l oop. Какую часть LinearLayoutManager или RecyclerView я должен изменить, чтобы я мог сделать что-то вроде этого:

adapterPosition = (adapterPosition + direction) % dataList.size  // direction = +1 for up slide, -1 for down slide
var nextElementToBeDisplayed = NextElementToBeDisplayed(dataList.(adapterPosition))

Должен ли я также настроить, какой View (или ViewHolder) должен быть подготовлен подобным кодом? Сколько разделов мне нужно переопределить?

Как примечание: эффект прокрутки должен быть непрерывным и плавным. Даже если itemIndex равен 0 или MAX, визуальный список должен сохранять скорость прокрутки и не останавливаться внезапно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...