禁用整个RecyclerView的点击次数

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了禁用整个RecyclerView的点击次数相关的知识,希望对你有一定的参考价值。

我想在点击一个项目后禁用对整个RecyclerView的点击,并在假设500 milis后再次启用它。

这个想法只是为了防止对RecyclerView项目的项目进行多次快速点击。例如,有些人可能会快速点击3个项目,所有这些项目都会被触发。

我尝试了setEnabled(false)setClickable(false),但它们都不能单独使用或一起使用。

答案

可能你必须禁用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。

另一答案

使用RxJava throttlefirst运算符,非常简单。

以上是关于禁用整个RecyclerView的点击次数的主要内容,如果未能解决你的问题,请参考以下文章

RecyclerView 内容未使用片段父级的全宽

当我点击我的应用程序中的注册用户片段时应用程序崩溃..其中包含recyclerview

关于打开一个新活动以响应对片段内的 RecyclerView 项目的点击

更改片段(子片段)时 RecyclerView 中的奇怪叠加

如何在 Recyclerview Item Click 上打开新片段?

单击 recyclerView 项目时未打开新片段