Ejemplo simple de grid en Android usando RecyclerView con GridLayoutManager (como el antiguo GridView)
Sé que RecyclerView
ha reemplazado la funcionalidad de los antiguos ListView
y GridView
. Estoy buscando un ejemplo muy básico que muestre una configuración mínima de la cuadrícula utilizando RecyclerView
. No estoy buscando largas explicaciones de estilo tutorial, sólo un ejemplo mínimo. Imagino que la rejilla más simple que imita el antiguo GridView consistiría en las siguientes características:
- múltiples celdas por fila
- una sola vista en cada celda
- responde a eventos de clic
181
3
Respuesta corta
Para aquellos que ya están familiarizados con la configuración de un
RecyclerView
para hacer una lista, la buena noticia es que hacer una cuadrícula es en gran medida lo mismo. Sólo tienes que utilizar unGridLayoutManager
en lugar de unLinearLayoutManager
cuando configures elRecyclerView
.Si necesitas más ayuda que eso, entonces mira el siguiente ejemplo.
Ejemplo completo
El siguiente es un ejemplo mínimo que se verá como la imagen de abajo.
[]
Comience con una actividad vacía. Realizará las siguientes tareas para añadir la rejilla
RecyclerView
. Todo lo que necesitas hacer es copiar y pegar el código en cada sección. Más tarde puedes personalizarlo para que se ajuste a tus necesidades.Actualizar las dependencias de Gradle
Asegúrate de que las siguientes dependencias están en el archivo
gradle.build
de tu aplicación:Puedes actualizar los números de versión a la que sea la más actual.
Crear el diseño de la actividad
Añade el
RecyclerView
a tu layout xml.activity_main.xml
Crear el diseño de las celdas de la rejilla
Cada celda de nuestra rejilla
RecyclerView
sólo va a tener un únicoTextView
. Crear un nuevo archivo de recursos de diseño.recyclerview_item.xml
Crear el adaptador
El
RecyclerView
necesita un adaptador para rellenar las vistas de cada celda con sus datos. Crea un nuevo archivo java.MyRecyclerViewAdapter.java
Notas
GridView
y es una necesidad común. Puedes eliminar este código si no lo necesitas.Inicializar RecyclerView en la actividad
Agregue el siguiente código a su actividad principal.
MainActivity.java
Notas
ItemClickListener
que hemos definido en nuestro adaptador. Esto nos permite manejar los eventos de clic de las celdas enonItemClick
.Terminado
Eso'es todo. Ahora deberías poder ejecutar tu proyecto y obtener algo similar a la imagen de la parte superior.
Continuando
Esquinas redondeadas
Ajuste automático de las columnas
Estudio adicional
Aunque me gusta y aprecio la respuesta de Suragch's, me gustaría dejar una nota porque he encontrado que codificar el Adapter (
MyRecyclerViewAdapter
) para definir y exponer el método ListeneronItemClick
no es la mejor manera de hacerlo, debido a que no se utiliza la encapsulación de clases correctamente. Así que mi sugerencia es dejar que el Adaptador se encargue únicamente de las operaciones de escucha (¡ese es su propósito!) y separarlas de la actividad que utiliza el Adaptador (MainActivity
). Así es como yo establecería la clase Adapter:MyRecyclerViewAdapter.java
Por favor, tenga en cuenta el método
onItemClick
ahora definido enMyRecyclerViewAdapter
que es el lugar donde querrá codificar sus tareas para el evento/acción recibido.Sólo hay que hacer un pequeño cambio para completar esta transformación: la Activity ya no necesita implementar
MyRecyclerViewAdapter.ItemClickListener
, porque ahora eso lo hace completamente el Adapter. Esta sería entonces la modificación final:MainActivity.java
Usted tiene que establecer su recyclerview layoutmanager al modo Gridlayout, para hacer esto sólo tiene que cambiar su código cuando usted quiere establecer su RecyclerView LayoutManager:
Nota: reemplazar su cuenta de columnas que desea con ###HELP###