Android 禁用某些RecyclerView项目的单击/触摸

Android 禁用某些RecyclerView项目的单击/触摸,android,android-recyclerview,Android,Android Recyclerview,有没有办法防止点击回收器视图中的特定项目?已尝试在视图持有者构造函数中将视图设置为不可单击和未启用,但仍然没有成功。当我触摸该项目布局中的编辑文本时,它仍然可以单击,并将打开键盘 非常感谢 编辑:这与参考主题中出现的问题不同。我不希望禁用整个回收视图。只需从“回收器”视图中禁用一些项目。我已经尝试了引用主题中针对特定项目视图的解决方案,但没有成功。完全阻止与单个项目内任何内容交互的最简单方法可能是在其上放置一个透明视图,截取所有触摸事件。要做到这一点,可以将现有的itemView布局包装到Fra

有没有办法防止点击回收器视图中的特定项目?已尝试在视图持有者构造函数中将视图设置为不可单击和未启用,但仍然没有成功。当我触摸该项目布局中的编辑文本时,它仍然可以单击,并将打开键盘

非常感谢


编辑:这与参考主题中出现的问题不同。我不希望禁用整个回收视图。只需从“回收器”视图中禁用一些项目。我已经尝试了引用主题中针对特定项目视图的解决方案,但没有成功。

完全阻止与单个项目内任何内容交互的最简单方法可能是在其上放置一个透明视图,截取所有触摸事件。要做到这一点,可以将现有的itemView布局包装到FrameLayout中,并在其上添加另一个视图:

<FrameLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

    <!-- your itemView content here -->

    <View
        android:id="@+id/overlay"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>

</FrameLayout>
现在,当您想禁用单击时,可以调用

holder.overlay.setVisibility(View.VISIBLE);
holder.overlay.setVisibility(View.GONE);
当你想禁用它们时,你可以调用

holder.overlay.setVisibility(View.VISIBLE);
holder.overlay.setVisibility(View.GONE);

如果不知道自己想要做什么,很难回答,这可能需要在帖子中添加代码和图片。你说阻止点击,但在编辑文本中谈论焦点。可能重复我想在回收器视图项目的整个布局中禁用点击,包括布局按钮、编辑文本等内的视图。谢谢!我错过了FrameLayout,因此当我调用SetVisibility Goe时,视图实际上覆盖了项目布局P。视图会闪烁,好像它将消失,然后再次可见。有什么想法吗?在notifyItemChanged之后,我正在对bindType方法调用setVisibility。