Как создать закрытый (круговой) ListView?
Я хочу создать собственный ListView (или аналогичный), который будет вести себя как закрытый (круговой):
прокрутка вниз - после того, как последний элемент был достигнут, начинается первый (.., n-1, n, 1, 2, ..)прокрутка вверх - после достижения первого элемента начинается последний (.., 2, 1, n, n-1, ..)Концептуально это звучит просто, но, по-видимому, не существует прямого подхода к этому. Кто-нибудь может указать мне правильное решение? Спасибо !
Я уже получил ответ (от Streets Of Boston на Google-разработчиках Android-групп), но это звучит как-то некрасиво :) -
Я сделал это, создав свой собственный список-адаптер (подкласс из BaseAdapter).
Я кодировал свой собственный список-адаптер таким образом, чтобы его метод getCount () возвращал число HUUUUGE.
И если выбран элемент 'x', то этот элемент соответствует позиции адаптера = 'adapter.getCount () / 2 + x'
И для метода моего адаптера getItem (int position) я смотрю в своем массиве, который выполняет резервное копирование адаптера, и извлекаю элемент по индексу: (position-getCount () / 2)% myDataItems.length
Вам нужно сделать еще несколько «специальных» вещей, чтобы все это работало правильно, но вы поняли идею.
В принципе, все еще возможно достичь конца или начала списка, но если вы установите для getCount () около миллиона или около того, это трудно сделать :-)