¿Cómo obtener información sobre el toque de RecyclerView?

Implementé un ReceylerView y no puedo averiguar cómo obtener retroalimentación de tacto (el efecto de rizo de él).

Aquí es lo que hice para el onClickListener:

holder.itemView.setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { //start Intent } }); 

Y he añadido tanto clickable y focusable a mi XML. Esto es lo que la vista del reciclador se infla:

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:clickable="true" android:focusable="true" android:padding="4dp" > 

Usted tiene que fijar una ondulación dibujable como fondo:

 android:background="@drawable/ripple" 

Ripple.xml:

 <?xml version="1.0" encoding="utf-8"?> <ripple xmlns:android="http://schemas.android.com/apk/res/android" android:color="#ffa0a0a0"/> 

Es posible que deba enmascarar el dibujable:

 <?xml version="1.0" encoding="utf-8"?> <ripple xmlns:android="http://schemas.android.com/apk/res/android" android:color="#ffa0a0a0"> <item android:id="@android:id/mask"> <shape android:shape="rectangle"> <solid android:color="#ffa0a0a0"/> </shape> </item> </ripple> 

Esto creará una ondulación gris simple al tocar (aquí hay una guía si necesita más instrucciones).

RippleDrawable se agregó en SDK versión 21 (Lollipop). El uso de Ripple drawable en pre-lollipop bloqueará la aplicación. Utilice un selector simple en dispositivos pre-piruletas o utilice bibliotecas que recreen el efecto. ( GitHub )

ACTUALIZACIÓN: Usted puede conseguir el efecto de la ondulación fácilmente con este pedazo de código:

 android:background="?attr/selectableItemBackground" 

O si no desea la máscara de rectángulo:

 android:background="?attr/selectableItemBackgroundBorderless" 

Esto es compatible con los dispositivos pre-lollipop y nos va un selector simple. Creo que esto creará ondulaciones ligeras en aplicaciones con tema oscuro y viceversa, por lo que si desea una ondulación personalizada de color que todavía tendrá que crear una ondulación dibujable.

Además de la respuesta de @ Longi: Si quieres que tu Elemento de RecyclerViews tenga su propio fondo y al mismo tiempo tenga el efecto de ondulación, puedes hacerlo como se muestra en el ejemplo siguiente: recycler_view_item.xml:

  <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/recyclerview_item_background"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:background="?attr/selectableItemBackgroundBorderless"> ... </LinearLayout> </LinearLayout> 

En este ejemplo @ drawable / recyclerview_item_background es un png de nueve parches, pero puede utilizar cualquier fondo aquí.

En mi caso cuando utilicé android: background = "? Attr / selectableItemBackground" , el diseño lineal de la raíz del elemento de RecyclerView tenía el efecto ripple, pero el fondo de Linear Layout del niño se superponía ocultando así el efecto ripple.

  • Botón de acción flotante que no se muestra sobre la vista de reciclaje (que se encuentra dentro de un DrawerLayout)
  • Arrastrar y soltar vista fuera de Recyclerview
  • Eliminar el espaciado predeterminado en la vista de reciclador
  • Viewpager está siendo expulsado de la pantalla
  • Los datos de Firebase no se muestran en RecyclerView
  • Eliminar fila de RecyclerView
  • Fade out / fade en TextView basado en desplazamiento
  • FirebaseRecyclerAdapter y multiplicar tipos de elementos en android
  • Combinar múltiples RecyclerView.Adapter para usar con RecyclerView único (Android)
  • Cargando imagen con deslizamiento es lento
  • Recyclerviews en ViewPager
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.