我有一个带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;
}