Как создать закрытый (круговой) ListView?

Я хочу создать специализированный ListView (или подобный), который будет вести себя как закрытый (круговой):

  1. при прокручивании вниз - после того, как был достигнут последний объект, первое начинается (.., n-1, n, 1, 2..)
  2. при прокрутке вверх - после того, как был достигнут первый объект, последнее начинается (.., 2, 1, n, n-1..)

Это звучит простым концептуально, но, по-видимому, нет никакого простого подхода, чтобы сделать это. Кто-либо может указать на меня на правильное решение? Спасибо!

Я уже получил ответ (с улиц Бостона на Разработчиках Android группы Google), но это звучит так или иначе ужасным :) -

Я сделал это путем создания моего собственного адаптера списка (разделенный на подклассы от BaseAdapter).

Я кодировал свой собственный адаптер списка таким способом, которым его getCount () метод возвращает число HUUUUGE.

И если объект 'x' выбран, то этот объект соответствует положению адаптера ='adapter.getCount ()/2+x'

И для метода моего адаптера getItem (международное положение), я смотрю в своем массиве, который резервирует адаптер, и выберите объект на индексе: (положение-getCount ()/2) % myDataItems.length

Необходимо сделать некоторый более 'специальный' материал, чтобы заставить все это работать правильно, но Вы получаете идею.

В принципе все еще возможно достигнуть конца или начало списка, но если Вы устанавливаете getCount () к приблизительно приблизительно миллиону, это трудно сделать :-)

57
задан Dukeling 16 September 2013 в 18:56
поделиться

1 ответ

Решение, о котором вы упоминаете, - это то, которое я советовал другим разработчикам использовать в прошлом. В getCount() просто верните Integer.MAX_VALUE, это даст вам около 2 миллиардов элементов, чего должно быть достаточно.

13
ответ дан 24 November 2019 в 19:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: