我正在尝试在RecyclerView
中实现部分滑动并添加删除按钮。我想在用户点击删除按钮后才删除刷过的行。我正在使用ItemTouchHelper
。 SimpleCallback
并且能够使用下面的代码实现部分滑动。我有两个待处理的任务:
onChildDraw
方法实现部分滑动。我正在部分滑动时绘制一个红色矩形。我想在其中添加“删除”文本。是否可以添加Button而不是绘制矩形?回答你的问题:
@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();
}
}
以获取指导。你也可以查看我的帖子here。我已经使用ItemTouchHelper.SimpleCallback实现了所需的效果。它是一个简单的帮助类,易于使用。