Cómo crear elementos de lista inclinada

Tengo un RecyclerView horizontal que se parece a esto (obviamente)

 ------------------------------- | | | | | | | 1 | 2 | 3 | 4 | 5 | | | | | | | ------------------------------- 

Quiero hacer esto:

 ------------------------------ | / / / / | | 1 / 2 / 3 / 4 / 5 | | / / / / | ------------------------------- 

¿Cuál es la mejor manera de crear un RecyclerView como este?

Nota: No estoy tratando de crear un divisor inclinado. Estoy tratando de crear un diseño inclinado. Por inclinarse me refiero a enmascarado no girado. Los elementos deben tener un ImageView match_parent y un TextView . Ambos deben mirar derecho, no girado. También preste atención al primer y último artículo por favor.

He aquí un ejemplo:

muestra

Le sugiero que use Squint

Cree un xml de diseño con el código a continuación. Este archivo de diseño representa una sola fila en la vista de reciclador al mostrar la imagen y el texto.

 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:squint="http://schemas.android.com/apk/res-auto" android:orientation="vertical" android:layout_marginLeft="-25dp" android:layout_width="wrap_content" android:layout_height="wrap_content"> <com.intrusoft.squint.DiagonalView android:id="@+id/diagonalView" android:layout_width="150dp" android:layout_height="150dp" android:layout_alignParentTop="true" android:layout_centerHorizontal="true" android:scaleType="centerCrop" squint:angle="10" squint:diagonalDirection="bottom_to_top" squint:gravity="right"/> <TextView android:background="#80000000" android:layout_width="150dp" android:layout_height="30dp" android:gravity="center" android:textColor="#FFF" android:id="@+id/txtName" android:layout_alignBottom="@+id/diagonalView" android:layout_alignLeft="@+id/diagonalView" android:layout_alignStart="@+id/diagonalView"/> </RelativeLayout> 

Después de escribir un adaptador personalizado, debe preparar el RecyclerView de la siguiente manera.

  LinearLayoutManager layoutManager = new LinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false); // make it horizontal recyclerView.setLayoutManager(layoutManager); 

Después de aplicar estas operaciones con éxito, conseguí una imagen como esta. Introduzca aquí la descripción de la imagen

Esta solución puede no ser la solución perfecta. Hay algunos puntos defectuosos como android: layout_marginLeft = "- 25dp" . Por lo menos puede darte una idea.

No sé la respuesta exacta para su problema pero yo recomendaría crear su propio DividerItemDecoration.

Para más información, compruebe esto: https://developer.android.com/reference/android/support/v7/widget/DividerItemDecoration.html

Parece que no se puede hacer un RecyclerView , ya que esas vistas no pueden superponerse. En este punto, es posible que desee considerar la posibilidad de ampliar un ScrollView horizontal y coser las imágenes y otros elementos en una vista larga que se desplaza por sobreescribir el método onDraw . Puede manejar los eventos de clic en la onTouch método onTouch . Esto parece un proyecto bastante grande pensado, especialmente si usted tiene muchas imágenes y tiene que manejar la memoria.

  • ¿Cómo se relaciona la posición de un adaptador de RecyclerView con el índice de su conjunto de datos?
  • Recyclerview dentro de la vista de desplazamiento anidada cargando todos los datos en lugar de llamar una por una imagen cuando se desplaza
  • ¿Cómo tener un ListView / RecyclerView dentro de un RecyclerView padre?
  • Lista ampliable con RecyclerView?
  • Actualizar RecyclerView.Adapter después de la intención de la cámara
  • Recyclerview notifyDataSetChanged (); no funciona
  • Cómo obtener el elemento del adaptador RecyclerView en Android
  • Android: Sugerencia necesaria para actualizar la vista del reciclador en el elemento seleccionado de la ruleta
  • Android RecyclerView adición y eliminación de artículos
  • Circular RecyclerView
  • ¿Por qué RecyclerView no tiene onItemClickListener ()?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.