我有一个带CardView的RecycleView,我实现了这个刷卡手柄选项。当用户向右刷卡时,需要删除该卡。问题是这个动作非常敏感——当你点击或拖动一点卡片时,它就会执行这个动作。如果你把卡片拖到屏幕的尽头,我该怎么做才能使它不那么敏感呢?

最佳答案

只需重写类itemTouchhelper.callback中的方法getSwipeeScapeVelocity():

public class SwipeToDeleteTouchHelperCallback extends ItemTouchHelper.SimpleCallback {
    //constructor, another methods, etc...

    @Override
    public float getSwipeEscapeVelocity(float defaultValue) {
        return defaultValue * 10;//10 -> almost insensitive
    }
}

如果要更改“刷卡边界”,请重写此类中的另一个方法:
@Override
public float getSwipeThreshold(@NonNull RecyclerView.ViewHolder viewHolder) {
    // 0.75 - you need to drag item by 75% of his width(or height) to dismiss
    // default value is 0.5f
    return 0.75f;
}

10-06 05:11