2010-02-18 22 views
6

Tengo una aplicación de Android donde los usuarios pueden agregar elementos a una lista, y me gustaría que puedan volver a ordenar los artículos en la lista como quieran (en lugar de simplemente ofrecerles diferentes órdenes de clasificación). Es bastante fácil agregar una configuración de posición para los artículos (provienen de la base de datos), pero ¿qué tipo de elementos de la interfaz de usuario están disponibles para que el usuario indique el pedido deseado?¿Cómo puedo permitir que un usuario vuelva a ordenar elementos de una lista?

¿Hay algún patrón que alguien haya visto implementado para esto? No he visto nada en Android que haga algo como esto, excepto la pantalla de inicio que es similar pero parece un poco más allá de mi experiencia en este punto. Lo mejor que puedo pensar es usar un menú de clic largo y un menú contextual para "mover hacia arriba" o "mover hacia abajo".

Respuesta

2

Acabo de encontrar esto: Android List View Drag and Drop sort después de algunas búsquedas y navegación. Pensé que tiene sentido vincularlo aquí, porque esta es la primera pregunta que surge al buscar listas reordenables en Android.

3

Bueno, ahí está la respuesta correcta y mi respuesta. :-)

La respuesta correcta es arrastrar y soltar. Hay un código para eso flotando alrededor de la fuente de Android para la aplicación de Música, pero está fuera de mi nivel de habilidad con los eventos táctiles en este momento.

En el one case quería esta característica, creé una lista con los botones arriba/abajo para permitir que el usuario vuelva a realizar la secuencia. Feo, pero funciona.

Usando un menú contextual, como usted indica, sin duda se puede hacer que funcione, pero si puede ahorrar el espacio en pantalla, es más fácil colocar los botones. Incluso podría considerar activar/desactivar la visibilidad del botón a través de un menú de opciones, si tenerlas en pantalla todo el tiempo será desagradable.

Y, algún día, espero hacer un drag-and-drop ReorderableListView como un componente reutilizable ... pero no aguantaría la respiración. Tal vez alguien más tiene uno que todavía no he encontrado.

Cuestiones relacionadas