BaseRecyclerViewAdapterHelper icon indicating copy to clipboard operation
BaseRecyclerViewAdapterHelper copied to clipboard

条目点击事件连点屏蔽

Open ZhuoJunErGe opened this issue 4 years ago • 2 comments

setOnItemClickListener() 此方法可以连续点击,导致可以同时打开多个页面,希望能屏蔽段时间连点,目前是自己写了屏蔽,建议直接能屏蔽掉

ZhuoJunErGe avatar Jan 04 '22 02:01 ZhuoJunErGe

public abstract class BlockQuickItemClickListener implements OnItemClickListener {
    private static final long MULTI_CLICK_INTERVAL = 800L;
    private long lastClickTime;

    public abstract void onBlockQuickItemClick(@NonNull BaseQuickAdapter<?, ?> adapter, @NonNull View view, int position);

    public boolean isFastClick() {
        long currentTime = System.currentTimeMillis();
        if (currentTime - lastClickTime < MULTI_CLICK_INTERVAL) {
            return true;
        } else {
            lastClickTime = currentTime;
            return false;
        }
    }

    @Override
    public void onItemClick(@NonNull BaseQuickAdapter<?, ?> adapter, @NonNull View view, int position) {
        if (isFastClick()) return;
        onBlockQuickItemClick(adapter, view, position);
    }
}

当然,这个也可以
public abstract class BlockQuickClickListener implements View.OnClickListener {
    private static final long MULTI_CLICK_INTERVAL = 800L;
    private long lastClickTime;

    public abstract void onBlockQuickClick(View v);

    @Override
    public void onClick(View v) {
        if (isFastClick()) return;
        onBlockQuickClick(v);
    }

    public boolean isFastClick() {
        long currentTime = System.currentTimeMillis();
        if (currentTime - lastClickTime < MULTI_CLICK_INTERVAL) {
            return true;
        } else {
            lastClickTime = currentTime;
            return false;
        }
    }
}

ZhuoJunErGe avatar Jan 04 '22 02:01 ZhuoJunErGe

+1

gitboylovegirl avatar May 26 '23 03:05 gitboylovegirl