3

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

先感谢您

4

0 回答 0