我想在他/她刷卡时在CardView下显示用户菜单;但我希望cardView在刷卡过程中停在中途;
我创建了MyItemTocuchHelper类并重写了onChildDraw()方法:
public class MyItemTocuchHelper extends ItemTouchHelper.SimpleCallback {
.....
private int mWidth = 128; // this value is calculated, but let's say its 128
...
@Override
public void onChildDraw(Canvas c, RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, float dX, float dY, int actionState, boolean isCurrentlyActive) {
if (dX > mWidth) {
dX = mWidth;
}
super.onChildDraw(c, recyclerView, viewHolder, dX, dY, actionState, isCurrentlyActive);
}
}
@Override
public float getSwipeThreshold(RecyclerView.ViewHolder viewHolder) {
return 0.01f;
}
这样做,是滑动动画在某一点停止(我想做);但是当刷过此视图时,滑动距离会自动设置为屏幕宽度;我的意思是,当我尝试向后滑动时,onChildDraw()方法在第一次使用dX = 1038.0进行调用,并且当我继续滑动时其值减小;所以在dX达到mWidth的值之前没有播放动画。只要dX;的值减小到mWidth的值,动画就会重新开始。
有没有办法,例如将swipedDX设置为特定值?或者周围的任何方式?我想要的是,一旦用户开始向后滑动视图就开始动画。
提前谢谢