android-禁用RecyclerView的某些项目的单击触摸

android-禁用RecyclerView的某些项目的单击触摸,第1张

概述有没有一种方法可以防止单击回收者视图中的特定项目?已经尝试将视图设置为不可点击且未在视图持有器构造函数中启用该视图,但仍然没有运气.当我触摸该项目的布局内的编辑文本时,它仍然可以单击并打开键盘.首先十分感谢!编辑:这与所引用主题中提出的问题不同.我不想禁用整个回收视图.

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

首先十分感谢!

编辑:这与所引用主题中提出的问题不同.我不想禁用整个回收视图.只需从“回收者”视图中禁用某些项目即可.我已经尝试了针对特定项目视图的参考主题中提供的解决方案,但是该解决方案不起作用.

解决方法:

完全阻止与单个项目中的任何内容进行交互的最简单方法可能是在其上方放置一个透明视图以拦截所有触摸事件.为此,您可以将现有的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>

在onCreateVIEwHolder()内部,您可以将无 *** 作点击侦听器分配给叠加层:

@OverrIDepublic MyVIEwHolder onCreateVIEwHolder(@NonNull VIEwGroup parent, int vIEwType) {    LayoutInflater inflater = LayoutInflater.from(parent.getContext());    VIEw itemVIEw = inflater.inflate(R.layout.itemvIEw, parent, false);    MyVIEwHolder holder = new MyVIEwHolder(itemVIEw);    holder.overlay.setonClickListener(v -> {});    return holder;}

现在,当您要禁用点击时,您可以致电

holder.overlay.setVisibility(VIEw.VISIBLE);

而当您想禁用它们时,您可以致电

holder.overlay.setVisibility(VIEw.GONE);
总结

以上是内存溢出为你收集整理的android-禁用RecyclerView的某些项目的单击/触摸全部内容,希望文章能够帮你解决android-禁用RecyclerView的某些项目的单击/触摸所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1095223.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存