我想在他/她滑动时在 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;
}
这是做什么的,滑动动画会在某个点停止(我想做);但是当这个视图被滑动时,滑动距离自动设置为屏幕宽度;我的意思是,当我尝试将其向后滑动时,第一次使用 dX = 1038.0 调用 onChildDraw() 方法,并且它的值随着我继续滑动而减小;所以在 dX 达到 mWidth 的值之前没有播放动画。只要 dX; 的值减小到 mWidth 的值,动画就会重新开始。
有什么方法可以将例如 swipedDX 设置为特定值?或任何解决方法?我想要的是,一旦用户开始向后滑动视图,就开始动画。
先感谢您