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.
- Android: Layout.addView () no funciona
- ¿Por qué la publicación y cancelación de un runnable en un resultado de View and Handler en bahviour diferente?
- Android: Elementos de interfaz de usuario sobre capa de lienzo
- GetMeasuredWidth devuelve un valor totalmente erróneo
- ¿Qué hace android: isScrollContainer hacer?
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.
- Cómo utilizar RenderScript con SurfaceView / View
- Android SearchView cadena vacía
- Vista de niño androide sin estado de prensa
- Android: ¿Cómo obtener una vista dada una actividad dentro de una clase normal?
- ¿Es posible desactivar el HeaderLayout que se puede hacer clic en NavigationView?
- Error al hacer referencia a una clase interna Ver en layout / main.xml
- Android: alinear el centro de la vista con el de otra vista
- En qué condiciones se llama a getChildView () en ExpandableListAdapter
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.
- Agregar encabezados personalizados con la biblioteca Volley
- Alerta de Google Play Games Services: "Implementación incorrecta detectada"