我想制作一个像Gmail一样的RecyclerView应用程序,在滑动时显示一个删除按钮和一个编辑按钮。
他是我的XML代码。
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<FrameLayout
android:id="@+id/FlashBarLayout"
android:layout_width="match_parent"
android:layout_height="77dp"
android:layout_gravity="right"
android:layout_marginBottom="0dp"
android:background="@color/fab_material_grey_200">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="77dp"
android:layout_below="@+id/LinearLayout02"
android:gravity="center|end">
<TextView
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="0.5"/>
<ImageView
android:id="@+id/imageView2"
android:layout_width="0dp"
android:layout_weight="0.25"
android:layout_height="wrap_content"
android:src="@drawable/ic_create_black_48dp"
android:paddingRight="5dp"/>
<ImageView
android:id="@+id/imageView1"
android:layout_width="0dp"
android:layout_weight="0.25"
android:layout_height="wrap_content"
android:src="@drawable/ic_delete_black_48dp"
android:paddingRight="5dp"/>
</LinearLayout>
</FrameLayout>
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="77dp"
android:orientation="vertical"
android:id="@+id/item"
android:background="@color/fab_material_white">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_below="@+id/LinearLayout01">
<TextView
android:id="@+id/tvNPreparacion"
style="@style/EtiquetasResaltadas"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_weight="0.44"
android:gravity="center_horizontal"
android:text="@string/NPreparacion" />
<TextView
android:id="@+id/tvFecha"
style="@style/EtiquetasResaltadas"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_weight="0.70"
android:gravity="center|top"
android:text="@string/FechaHora" />
<TextView
android:id="@+id/tvNPedidos"
style="@style/EtiquetasResaltadas"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="1.12"
android:gravity="center|top"
android:text="@string/NPedidos" />
<TextView
android:id="@+id/tvNAlbaranes"
style="@style/EtiquetasResaltadas"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="1"
android:gravity="left"
android:text="@string/NAlbaranes" />
<TextView
android:id="@+id/tvHojasCarga"
style="@style/EtiquetasResaltadas"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="1.00"
android:gravity="left"
android:text="@string/NHojasCarga" />
<TextView
android:id="@+id/tvNFacturas"
style="@style/EtiquetasResaltadas"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="0.99"
android:gravity="left"
android:text="@string/NFacturas" />
<TextView
android:id="@+id/tvNArticulos"
style="@style/EtiquetasResaltadas"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:layout_weight="0.5"
android:gravity="left"
android:text="@string/NArticulos" />
</LinearLayout>
<LinearLayout
android:id="@+id/LinearLayout01"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/tvAgente"
style="@style/EtiquetasResaltadas"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="1"
android:gravity="left"
android:text="@string/Agente" />
</LinearLayout>
</RelativeLayout>
</FrameLayout>
这是我的onChildDraw方法。
public void onChildDraw(Canvas c, RecyclerView recyclerView,
RecyclerView.ViewHolder viewHolder, float dX, float dY,
int actionState, boolean isCurrentlyActive) {
if (actionState == ItemTouchHelper.ACTION_STATE_SWIPE) {
((ActivityVentas.AdaptadorPedidos.ViewHolder) viewHolder).itemLayout.setTranslationX(dX / 2);
} else {
super.onChildDraw(c, recyclerView, viewHolder, dX, dY,
actionState, isCurrentlyActive);
}
}
在我的onBindViewHolder方法中,我做了这个:
mViewHolder.Img_Borrar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(ActivityVentas.this);
alertDialogBuilder
.setTitle("Eliminar la entrada")
.setMessage("¿Está seguro que desea eliminar la entrada seleccionada?")
.setCancelable(false)
.setPositiveButton("Eliminar entrada", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
}
})
.setNegativeButton("Cancelar", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
dialog.cancel();
}
});
// create alert dialog
AlertDialog alertDialog = alertDialogBuilder.create();
// show it
alertDialog.show();
}
});
但我无法点击图片查看。
我如何定义这个onClick方法?