que quieren crear un ListView personalizado (o similar), que se comportará como un sistema cerrado (circular) uno:Cómo crear un ListView cerrado (circular)?
- el desplazamiento hacia abajo - después de alcanzar el último elemento de la primera comienza (.., N-1, n, 1, 2, ..)
- desplazamiento hacia arriba - después de que el primer punto se alcanzó el último comienza (.., 2, 1, n, n-1, ..)
suena simple conceptualmente pero, aparentemente, no hay un enfoque directo para hacer esto. ¿Alguien puede indicarme la solución correcta? ¡Gracias!
ya he recibido una respuesta (de calles de Boston en grupos Android-Desarrolladores de Google), pero suena de alguna manera fea :) -
Hice esto mediante la creación de mi propia lista -adaptador (subclase desde BaseAdapter).
Codifiqué mi propio adaptador de lista en tal forma que su método getCount() devuelve un número HUUUUGE.
Y si el artículo 'X' se selecciona, entonces este artículo corresponde al adaptador posición = 'adapter.getCount()/2 + x'
Y para el método getItem (posición int) de mi adaptador, miro en mi arsenal que respalda el adaptador y buscar el punto del índice: (posición-getCount()/2)% myDataItems.length
Es necesario hacer un poco más 'especial' cosas para hacer todo funciona correctamente, pero ya se entiende.
En principio, es todavía posible llegar al final o al principio de la lista , pero si establece getCount() para alrededor de un millón o más, esto es difícil de hacer :-)
del Sr. Boston es la única opción disponible, si se apega a las clases en la jerarquía 'AdapterView' (por ejemplo,' ListView'). – CommonsWare
No me apegaré a ningún tipo de clases. Menciono ListView solo para dar una idea del comportamiento y aspecto del control, también puede llamarlo "tabla" si lo desea. Algo muy personalizado podría ser un conjunto de celdas que forma una lista, y cuando una de estas celdas sale del área visible, el motor actualizará (desde diferentes hilos, creo) su posición (coordenadas) y contenidos (texto + imágenes) . Pero este proceso de actualización puede afectar la suavidad del desplazamiento. – user281076
¿Dónde debería escribir position = adapter.getcount()/2 + x? – Diffy