1

So, I have RecyclerView with items. When user swipe item on the left side should appers button Delete on the red background. I created drawing by swipe. but when I stop swiping the red rectangle dissapers. How to do it in a such way that after swiping I saw red rectangle? Pay attention to onChildDrawOver()

    ItemTouchHelper swipeToDismissTouchHelper = new ItemTouchHelper(new ItemTouchHelper.SimpleCallback(
        ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT, ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT) {

    public void onChildDrawOver(Canvas canvas, RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder,
                            float dX, float dY, int actionState, boolean isCurrentlyActive) {
        LinearLayout linearLayout = (LinearLayout) recyclerView.findViewById(R.id.linearLayout);

            MyAdapter.MyViewHolder vh = (MyAdapter.MyViewHolder) viewHolder;
            vh.mBtn.setVisibility(View.VISIBLE);
            Paint p = new Paint();
            if (dX < 0) {
                p.setARGB(255, 255, 0, 0);
            } else {
                p.setARGB(255, 0, 255, 0);
            }

            canvas.drawRect(linearLayout.getLeft() + dX, linearLayout.getTop() + dY, linearLayout.getRight(), linearLayout.getBottom(), p);
            p.setTextSize(20);
            canvas.drawText("Delete", linearLayout.getLeft(), linearLayout.getTop() / 2, p);
            // super.onChildDraw(canvas, recyclerView, viewHolder, dX, dY, actionState, isCurrentlyActive);
    }

    @Override
    public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) {
        // callback for drag-n-drop, false to skip this feature
        return false;
    }

    @Override
    public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) {
        adapter.showDeleteBtn((MyAdapter.MyViewHolder)viewHolder);
        list.remove(viewHolder.getAdapterPosition());
        adapter.notifyItemRemoved(viewHolder.getAdapterPosition());
    }
});
swipeToDismissTouchHelper.attachToRecyclerView(recyclerView);
Mikhail Valuyskiy
  • 1,238
  • 2
  • 16
  • 31

0 Answers0