禁用整个RecyclerView的点击次数

问题描述 投票:4回答:2

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

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

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

android listview view android-recyclerview
2个回答
4
投票

可能你必须禁用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运算符,非常简单。

© www.soinside.com 2019 - 2024. All rights reserved.