Deslizar a otra vista en recyclerVer con ItemTouchHelper

Dado es un RecyclerView. ¿Cuál es la mejor práctica y la forma más fácil de mostrar una vista diferente mientras se realiza el golpe?

Aquí hay una pregunta similar. Pero con la solución sólo se puede mostrar un mapa de bits.

Con el recyclerview viene el impresionante ItemTouchHelper , que tiene la devolución de llamada:

public void onChildDraw(Canvas canvas, RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, float dX, float dY, int actionState, boolean isCurrentlyActive) {...} 

Mi pregunta es: ¿puedo de alguna manera explotar esta devolución de llamada para deslizar entre dos vistas, y si sí, cómo.

Gracias.

Estoy trabajando en la tarea similar – la necesidad de revelar el panel subyacente ocultado mientras que el artículo está deslizando lejos. He conseguido hacerlo teniendo dos diseños internos dentro de la raíz RelativeLayout para la vista de fila del artículo:

 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:fresco="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="wrap_content"> <RelativeLayout android:id="@+id/actionsLayout" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_centerInParent="true"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hidden stuff is here"/> </RelativeLayout> <RelativeLayout android:id="@+id/itemLayout" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_centerVertical="true" android:background="@color/submission_row_bg"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Swiping stuff is here"/> </RelativeLayout> </RelativeLayout> 

En su clase ItemViewHolder tengo campos correspondientes:

 public class ItemViewHolder extends RecyclerView.ViewHolder { RelativeLayout itemLayout; RelativeLayout actionsLayout; } 

Entonces dentro de ItemTouchHelper.Callback estoy sobreescribiendo onChildDraw método como este:

 public static class MyItemTouchCallback extends ItemTouchHelper.Callback { public void onChildDraw(Canvas c, RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, float dX, float dY, int actionState, boolean isCurrentlyActive) { if (actionState == ItemTouchHelper.ACTION_STATE_SWIPE) { //HERE IS THE TRICK ((ItemViewHolder) viewHolder).itemLayout.setTranslationX(dX); } else { super.onChildDraw(c, recyclerView, viewHolder, dX, dY, actionState, isCurrentlyActive); } } } 

Ayuda a deslizar una vista y mostrar el subyacente.

  • Falta el puerto reenviado en el Visor de jerarquía: Uso de Android Studio
  • Modificación de atributos anidados en un Layout incluido
  • Cambiar el tamaño del texto del elemento en la vista de navegación
  • Establecer márgenes en un LinearLayout programáticamente
  • RemoteViews setLayoutParams?
  • El diseño de la vista no se actualiza en el cambio de orientación en android
  • Android ScrollView Vs ListView
  • Vista personalizada con diseño XML en Android
  • Superposición de vista de aplicación de Android (HUD)
  • Crash con SurfaceView en Android NDK al pausar / reanudar la aplicación rápidamente
  • Android: cómo determinar la última letra totalmente visible en TextView?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.