禁用整个RecyclerView的点击操作

4
我想在单击 RecyclerView 中的项目后禁用整个 点击功能,并在约 500 毫秒后再次启用它。
这样做的目的是为了防止对 RecyclerView 项进行多次快速点击。例如,有人可能会快速点击 3 个项目,从而触发它们所有。
我尝试过setEnabled(false)setClickable(false),但它们单独使用或一起使用都无效。

你能分享一下在RecyclerView中设置item点击监听器的代码吗? - Jickson
2个回答

5
也许您需要禁用RecyclerView的所有子项。 您可以像这样实现:
private static void setViewAndChildrenEnabled(View view, boolean enabled) {
    view.setEnabled(enabled);
    if (view instanceof ViewGroup) {
        ViewGroup viewGroup = (ViewGroup) view;
        for (int i = 0; i < viewGroup.getChildCount(); i++) {
            View child = viewGroup.getChildAt(i);
            setViewAndChildrenDisabled(child, enabled);
        }
    }
}

其中参数view是您的RecyclerView。


0
使用RxJava的throttleFirst操作符,非常简单。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接