Necesito implementar una vista de lista horizontal en mi aplicación de Android. Investigué un poco y encontré ¿Cómo puedo hacer un ListView horizontal en Android? y Horizontal ListView en Android? sin embargo, estas preguntas se hicieron antes de que se publicara Recyclerview. ¿Hay una mejor manera de implementar esto ahora con Recyclerview?
android
android-layout
android-recyclerview
Andre Perkins
fuente
fuente
LinearLayoutManager
con orientación establecida enHORIZONTAL
.Respuestas:
Si.
Cuando utiliza un
RecyclerView
, debe especificar unoLayoutManager
que sea responsable de diseñar cada elemento en la vista. El leLinearLayoutManager
permite especificar una orientación, como loLinearLayout
haría normalmente .Para crear una lista horizontal con
RecyclerView
, puede hacer algo como esto:fuente
RelativeLayout
no tiene el concepto de horizontal versus vertical, por lo que realmente no entiendo la pregunta.fuente
app:layoutManager="android.support.v7.widget.LinearLayoutManager"
no funcionará para la compilación de lanzamiento. Me he enfrentado a este problema Release build.Ejemplo completo
La única diferencia real entre una vertical
RecyclerView
y una horizontal es cómo configura elLinearLayoutManager
. Aquí está el fragmento de código. El ejemplo completo está abajo.Este ejemplo más completo sigue el modelo de mi
RecyclerView
respuesta vertical .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 elemento
Cada artículo en nuestro
RecyclerView
tendrá un solo colorView
sobre unTextView
. 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 fila (punto horizontal) con sus datos. Crea un nuevo archivo java.MyRecyclerViewAdapter.java
Notas
ListViews
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 los eventos de clic de elemento enonItemClick
.Terminado
Eso es. Debería poder ejecutar su proyecto ahora y obtener algo similar a la imagen en la parte superior.
Notas
fuente
Si desea utilizar un
RecyclerView
con elGridLayoutManager
, esta es la forma de lograr el desplazamiento horizontal.fuente
Intentar construir un ListView horizontal lleva demasiado tiempo. Lo he resuelto de dos maneras.
1. Usando un ViewPager cuyo adaptador se extiende desde PagerAdapter.
2. Usando RecyclerView tal como se indica arriba. Necesita aplicar LayoutManager como en el siguiente código:
fuente
Si desea utilizar la Vista horizontal del reciclador para actuar como ViewPager, ahora es posible con la ayuda de
LinearSnapHelper
la versión 24.2.0 de la Biblioteca de soporte.En primer lugar, agregue RecyclerView a su actividad / fragmento
En mi caso he utilizado una
CardView
dentro de laRecyclerView
blog_row.xml
En tu actividad / fragmento
El último paso es configurar el adaptador a RecyclerView
fuente
Con el lanzamiento de la biblioteca RecyclerView, ahora puede alinear una lista de imágenes enlazadas con texto fácilmente. Puede usar LinearLayoutManager para especificar la dirección en la que le gustaría orientar su lista, ya sea vertical u horizontal como se muestra a continuación.
Puede descargar una demostración completa de esta publicación
fuente
fuente
Hay una subclase de RecyclerView llamada HorizontalGridView que puede usar para tener una dirección horizontal. VerticalGridView para dirección vertical
fuente
fuente
Vista del reciclador en horizontal dinámico.
Implementación de vista de reciclador
Clase de adaptador para la vista de reciclador, en la que hay un soporte de vista para mantener la vista de ese reciclador
fuente
fuente
Prueba esto:
solo en caso de que tenga una vista de reciclador con algunos fragmentos.
fuente