Sé que RecyclerView
ha reemplazado la funcionalidad de los viejos ListView
y GridView
. Estoy buscando un ejemplo muy básico que muestre una configuración de cuadrícula mínima usando RecyclerView
. No estoy buscando explicaciones largas de estilo tutorial, solo un ejemplo mínimo. Me imagino que la cuadrícula más simple que imita el antiguo GridView consistiría en las siguientes características:
- múltiples celdas por fila
- vista única en cada celda
- responde a eventos de clic
Respuestas:
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 prácticamente lo mismo. Solo usa un enGridLayoutManager
lugar de unLinearLayoutManager
cuando configura laRecyclerView
configuración.Si necesita más ayuda que eso, consulte 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 agregar la
RecyclerView
cuadrícula. Todo lo que necesita hacer es copiar y pegar el código en cada sección. Más tarde, puede personalizarlo para satisfacer sus necesidades.Actualizar dependencias de Gradle
Asegúrese de que las siguientes dependencias estén en su
gradle.build
archivo de aplicación :Puede actualizar los números de versión a lo que sea más actual .
Crear diseño de actividad
Agregue el
RecyclerView
a su diseño xml.activity_main.xml
Crear diseño de celda de cuadrícula
Cada celda de nuestra
RecyclerView
cuadrícula solo tendrá una solaTextView
. Cree un nuevo archivo de recursos de diseño.recyclerview_item.xml
Crea el adaptador
El
RecyclerView
necesita un adaptador para poblar los puntos de vista de cada celda con sus datos. Crea un nuevo archivo java.MyRecyclerViewAdapter.java
Notas
GridView
y es una necesidad común. Puede eliminar este código si no lo necesita.Inicializar RecyclerView en actividad
Agregue el siguiente código a su actividad principal.
MainActivity.java
Notas
ItemClickListener
que definimos en nuestro adaptador. Esto nos permite manejar eventos de clic de celda enonItemClick
.Terminado
Eso es. Debería poder ejecutar su proyecto ahora y obtener algo similar a la imagen en la parte superior.
Continuando
Esquinas redondeadas
Columnas autoajustables
Estudio adicional
fuente
recyclerView.setLayoutManager(new GridLayoutManager(this, numberOfColumns));
Aunque me gusta y aprecio la respuesta de Suragch , me gustaría dejar una nota porque descubrí que codificar el Adaptador (
MyRecyclerViewAdapter
) para definir y exponer el método ListeneronItemClick
no es la mejor manera de hacerlo, debido a que no utiliza la encapsulación de clase correctamente. Entonces, mi sugerencia es dejar que el Adaptador maneje las operaciones de Escucha únicamente (¡ese es su propósito!) Y separarlas de la Actividad que usa el Adaptador (MainActivity
). Así es como establecería la clase Adaptador:MyRecyclerViewAdapter.java
Tenga en cuenta que el
onItemClick
método ahora definido enMyRecyclerViewAdapter
ese es el lugar donde desea codificar sus tareas para el evento / acción recibido.Solo hay que hacer un pequeño cambio para completar esta transformación: la Actividad ya no necesita implementarse
MyRecyclerViewAdapter.ItemClickListener
, porque ahora eso lo hace completamente el Adaptador . Esta sería entonces la modificación final:MainActivity.java
fuente
Activity
. Debido a que sólo se de clic oyente puede saber acerca de losActivity
puntos de vista y otrosFragments
,Activities
etc. El adaptador sólo puede enviar eventos de click a nivel superior. Debe tener la interfazItemClickListener
con tantos eventos, como pueden producir muchas vistas del adaptador de eventos. Esta solución se escribió incluso antes: stackoverflow.com/a/40563598/2914140 .Debe configurar su administrador de diseño de la vista del reciclador en el modo de cuadrícula, para ello, simplemente cambie su código cuando desee configurar su RecyclerView LayoutManager:
Nota: reemplace el recuento de columnas que desee con ### HELP ###
fuente