当前位置: 首页 > 知识库问答 >
问题:

Android RecolyerView带有删除按钮的部分滑动

余靖
2023-03-14
@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();
    }
}

共有1个答案

卫财
2023-03-14

要回答您的问题:

  1. 是的。这是可能的,但在onChildDraw方法中不行。有很多第三方库使用两层方法。第一层是你的项目视图,第二层有所有的按钮。当您滑动时,它会显示按钮层,您可以通过设置按钮的onClickListener来处理click事件。
  2. 若要将OnClickListener添加到在onChildDraw方法中绘制的按钮中,必须将RecylerView.SetOnTouchListener设置为在屏幕上获取(x,y)。请在此查看Adamwei的帖子以获得指导。

你也可以在这里查看我的帖子。我已经通过使用ItemTouchHelper.SimpleCallBack实现了所需的效果。这是一个简单的helper类,易于使用。

 类似资料:
  • 我想实现一个功能,使用Swift 3.0将整个表单元格扫走。比如如何在iOS10的邮件应用程序中滑动删除。 重要的是要注意,我不是指滑动以显示删除按钮,然后处理删除。我的意思是用户可以在屏幕上从右向左滑动来删除。(还要注意,tableView是静态的,而不是动态的) 我必须为此实现UISWipleTestureRecognitor吗?

  • 如何在JavaFX中创建每行都有删除按钮和删除按钮操作?

  • 我已经在我的应用程序中使用了上述代码。编辑部分工作正常,但问题是,只有当我们在单元格上从左向右滑动时,删除按钮才会出现。现在我有了一个菜单,可以像Facebook一样从左向右滑动。那么,我如何确保当用户从右向左滑动时,删除按钮出现呢。

  • 问题内容: 我在线性布局中有一堆按钮。但是有空格按钮。我将padding设置为0,但是没有变化。在http://www.mail- archive.com/android- developers@googlegroups.com/msg51104.html上 已经有相同的问题,但那里没有答案。请你帮我一下。 问题答案: 尝试使用属性。例如,要减少左侧/右侧的空间(假设您有一组水平的按钮),可以执行

  • 我正在用C#WPF做一个项目,它包含在一个客户机管理中,在那里我添加了新的客户机,在一个txt文档中有save,我有一个listview,在那里我可以看到所有添加的客户机,但现在我想实现一个delete按钮,在那里我从listview中选择一个客户机,并可以删除它。如果我现在做的正确,如果有人能帮我…,…谢谢。

  • 我有一个包含三个滑动操作的列表项,如下所示: 常规列表项和按钮是在xml中定义的两种不同布局。 为了显示按钮操作,我使用了< code > ItemTouchHelper。简单回调。在< code>onChildDraw中,我告诉只绘制项目列表项目的x轴,直到它达到按钮控件的宽度。 这是一个简短的布局文件,演示了我构建用户界面的方式: 我的问题是按钮不可点击。到目前为止,我尝试过: < li >设