【发布时间】:2017-06-19 12:30:02
【问题描述】:
我正在尝试在RecyclerView 中实现部分滑动并添加一个删除按钮。我只想在用户单击删除按钮后删除刷过的行。我正在使用ItemTouchHelper。 SimpleCallback 并且能够使用下面的代码实现部分滑动。我有两个待处理的任务:
- 我正在使用
onChildDraw方法实现部分滑动。我目前正在部分滑动上绘制一个红色矩形。我想在其中添加文本“删除”。是否可以添加按钮而不是绘制矩形? -
如何在矩形/按钮上添加点击监听器以执行删除操作。
@Override public void onChildDraw(Canvas c, RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, float dX, float dY, int actionState, boolean isCurrentlyActive) { try { Bitmap icon; if (actionState == ItemTouchHelper.ACTION_STATE_SWIPE) { View itemView = viewHolder.itemView; float height = (float) itemView.getBottom() - (float) itemView.getTop(); float width = height / 5; viewHolder.itemView.setTranslationX(dX / 5); Paint paint = new Paint(); paint.setColor(Color.parseColor("#D32F2F")); RectF background = new RectF((float) itemView.getRight() + dX / 5, (float) itemView.getTop(), (float) itemView.getRight(), (float) itemView.getBottom()); RectF icon_dest = new RectF((float) (itemView.getRight() + dX /7), (float) itemView.getTop()+width, (float) itemView.getRight()+dX/20, (float) itemView.getBottom()-width); c.drawBitmap(null, null, icon_dest, paint); } else { super.onChildDraw(c, recyclerView, viewHolder, dX, dY, actionState, isCurrentlyActive); } } catch (Exception e) { e.printStackTrace(); } }
【问题讨论】:
标签: android android-recyclerview onclicklistener swipe