Ich habe erstellt ein RecyclerView ItemTouchHelper
so -Swipe links/rechts RecyclerView die Reihe teilweise
public class MyItemTouchHelper extends android.support.v7.widget.helper.ItemTouchHelper.SimpleCallback {
private final Paint p;
Context mContext;
@Override
public float getSwipeThreshold(RecyclerView.ViewHolder viewHolder) {
return viewHolder.itemView.getWidth()/3;
}
public MyItemTouchHelper(Context context) {
super(0, ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT);
mContext = context;
p = new Paint();
}
@Override
public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) {
return false;
}
@Override
public void onSwiped(RecyclerView.ViewHolder viewHolder, int direction) {
int position = viewHolder.getAdapterPosition();
if (direction == ItemTouchHelper.LEFT) {
} else {
}
}
@Override
public void onChildDraw(Canvas c, RecyclerView recyclerView, RecyclerView.ViewHolder
viewHolder, float dX, float dY, int actionState, boolean isCurrentlyActive) {
Bitmap icon;
String text = "Like it, remind me!";
if (actionState == ItemTouchHelper.ACTION_STATE_SWIPE) {
View itemView = viewHolder.itemView;
float height = (float) itemView.getBottom() - (float) itemView.getTop();
float width = height/10;
if (dX > 0) {
p.setColor(Color.parseColor("#388E3C"));
RectF background = new RectF((float) itemView.getLeft(), (float) itemView.getTop(), dX/3, (float) itemView.getBottom());
c.drawRect(background, p);
Rect r = new Rect();
p.getTextBounds(text, 0, text.length(), r);
float yPos = height/2;
yPos += (Math.abs(r.height()))/2;
int xPos = (c.getWidth()/2);
p.setTextAlign(Paint.Align.CENTER);
c.drawText(text,(float)xPos , yPos, p);
} else {
p.setColor(Color.parseColor("#D32F2F"));
RectF background = new RectF((float) itemView.getRight() + dX, (float) itemView.getTop(), (float) itemView.getRight(), (float) itemView.getBottom());
c.drawRect(background, p);
RectF icon_dest = new RectF((float) itemView.getRight() - 2 * width, (float) itemView.getTop() + width, (float) itemView.getRight() - width, (float) itemView.getBottom() - width);
}
}
super.onChildDraw(c, recyclerView, viewHolder, dX, dY, actionState, isCurrentlyActive);
}
}
Aber das ist die ganze Zeile aus dem Bildschirm klauen, ich will nur 25% der Reihe zu verschieben, . Lassen Sie mich einen Hinweis darauf wissen.
Ich habe unten Bibliothek zu implementieren. https://github.com/droidxiao/SwipeMenuRecyclerView [! [Dies ist die Ansicht nach dem Swipe] (https://i.stack.imgur.com/dJPj8.png)] (https://i.stack.imgur.com /dJPj8.png) Wenn Sie also nach links wischen, befindet sich die rechte Ansicht oben links. Es bedeutet, dass die linke Ansicht den Bildschirm nicht verlässt. Es ist eine Ansicht von rechts, die die linke Ansicht blockiert. Also in der xml-Datei der Ansicht, die von rechts kommt, make android: layout_gravity = "right" (Hält alle Ansichten nach rechts, so dass sie die linke Ansicht nicht blockieren). Ich hoffe es hilft.....! –