Sé que RecyclerViewha reemplazado la funcionalidad de los viejos ListViewy 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
RecyclerViewpara hacer una lista , la buena noticia es que hacer una cuadrícula es prácticamente lo mismo. Solo usa un enGridLayoutManagerlugar de unLinearLayoutManagercuando configura laRecyclerViewconfiguració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
RecyclerViewcuadrí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.buildarchivo 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
RecyclerViewa su diseño xml.activity_main.xml
Crear diseño de celda de cuadrícula
Cada celda de nuestra
RecyclerViewcuadrícula solo tendrá una solaTextView. Cree un nuevo archivo de recursos de diseño.recyclerview_item.xml
Crea el adaptador
El
RecyclerViewnecesita un adaptador para poblar los puntos de vista de cada celda con sus datos. Crea un nuevo archivo java.MyRecyclerViewAdapter.java
Notas
GridViewy 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
ItemClickListenerque 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 ListeneronItemClickno 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
onItemClickmétodo ahora definido enMyRecyclerViewAdapterese 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 losActivitypuntos de vista y otrosFragments,Activitiesetc. El adaptador sólo puede enviar eventos de click a nivel superior. Debe tener la interfazItemClickListenercon 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