Android CardView使用ItemTouchHelper在RecyclerView中滑动一半
当用户刷卡时,我想在CardView下显示用户菜单;但我希望cardView在刷卡过程中中途停止 我已创建MyItemTocuchHelper类并重写OnChildRaw()方法: 这样做的目的是,滑动动画在某个点停止(这是我想要做的);但当此视图被滑动时,滑动距离自动设置为屏幕宽度;我的意思是,当我尝试刷回它时,onchildraw()方法在第一次被dX=1038.0调用,它的值随着我继续刷回它而减小;因此,在dX达到mWidth值之前,不会播放动画。只要dX;'s值减小为mWidth值,动画将再次开始 有没有办法将Swipedx设置为特定值?或者其他方法?我想要的是,当用户开始向后滑动视图时,立即启动动画 先谢谢你Android CardView使用ItemTouchHelper在RecyclerView中滑动一半,android,android-recyclerview,swipe,itemtouchhelper,Android,Android Recyclerview,Swipe,Itemtouchhelper,当用户刷卡时,我想在CardView下显示用户菜单;但我希望cardView在刷卡过程中中途停止 我已创建MyItemTocuchHelper类并重写OnChildRaw()方法: 这样做的目的是,滑动动画在某个点停止(这是我想要做的);但当此视图被滑动时,滑动距离自动设置为屏幕宽度;我的意思是,当我尝试刷回它时,onchildraw()方法在第一次被dX=1038.0调用,它的值随着我继续刷回它而减小;因此,在dX达到mWidth值之前,不会播放动画。只要dX;'s值减小为mWidth值,动画
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;
}