Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
android onclick用于在recyclerview中滑动布局_Android_Android Recyclerview_Android Canvas_Onclicklistener - Fatal编程技术网

android onclick用于在recyclerview中滑动布局

android onclick用于在recyclerview中滑动布局,android,android-recyclerview,android-canvas,onclicklistener,Android,Android Recyclerview,Android Canvas,Onclicklistener,我将simpleItemTouchCallback附加到recyclerView,用于刷卡列表中的项目 @Override public void onChildDraw(Canvas c, RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, float dX, float dY, int actionState, boolean isCurrentlyActive)

我将
simpleItemTouchCallback
附加到
recyclerView
,用于刷卡列表中的项目

              @Override
              public void onChildDraw(Canvas c, RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, float dX, float dY, int actionState, boolean isCurrentlyActive) {
                    if (actionState == ItemTouchHelper.ACTION_STATE_SWIPE) {
                        View itemView = viewHolder.itemView;
                        float height = (float) itemView.getBottom() - (float) itemView.getTop();
                        float width = height / 3;
                        if (dX / 3 > 0) {
                            RectF rect = new RectF((float) itemView.getLeft(), (float) itemView.getTop(), dX / 3, (float) itemView.getBottom());
                            LayoutInflater li = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                            View v = li.inflate(R.layout.complete_layout, null);
                            v.measure(View.MeasureSpec.getSize(v.getMeasuredWidth()), View.MeasureSpec.getSize(v.getMeasuredHeight()));
                            v.layout(0, 0, Math.round(rect.width()), Math.round(rect.height()));
                            c.save();
                            c.translate(rect.left, rect.top);
                            v.draw(c);
                        } else {
                            RectF rect1 = new RectF((float) itemView.getRight() + dX / 3, (float) itemView.getTop(), (float) itemView.getRight(), (float) itemView.getBottom());
                            LayoutInflater li1 = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
                            View v = li1.inflate(R.layout.delete_layout, null);
                            v.measure(View.MeasureSpec.getSize(v.getMeasuredWidth()), View.MeasureSpec.getSize(v.getMeasuredHeight()));
                            v.layout(0, 0, Math.round(rect1.width()), Math.round(rect1.height()));
                            c.save();
                            c.translate(rect1.left, rect1.top);
                            v.draw(c);
                        }
                        c.restore();
                    }
 super.onChildDraw(c, recyclerView, viewHolder, dX / 3, dY, actionState, isCurrentlyActive);
滑动和绘制新布局工作正常。现在想在新布局中添加一个
OnClickListener
。我找不到这样做的方法

recyclerView.addOnItemTouchListener(
    new RecyclerItemClickListener(this, new RecyclerItemClickListener.OnItemClickListener() {
    @Override
    public void onItemClick(View view, int position) {
       //Magic happens here
    }
}
顺便说一句:我不知道你在发布的方法中做了什么^ ^

这应该行得通。但在我的代码中,视图根本不可单击。也许它对你有用

RectF rect1 = new RectF((float) itemView.getRight() + dX / 3, (float) itemView.getTop(), (float) itemView.getRight(), (float) itemView.getBottom());
LayoutInflater li1 = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View v = li1.inflate(R.layout.delete_layout, null);
v.measure(View.MeasureSpec.getSize(v.getMeasuredWidth()), View.MeasureSpec.getSize(v.getMeasuredHeight()));
v.layout(0, 0, Math.round(rect1.width()), Math.round(rect1.height()));
c.save();
c.translate(rect1.left, rect1.top); 

v.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    // implement here your code for the click
                }
});