使用ItemTouchHelper

时间:2016-07-06 13:03:36

标签: android android-recyclerview swipe itemtouchhelper

我想在他/她刷卡时在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设置为特定值?或者周围的任何方式?我想要的是,一旦用户开始向后滑动视图就开始动画。

提前谢谢

0 个答案:

没有答案