如何在Android中禁用RecyclerView项目?

如何在Android中禁用RecyclerView项目?,第1张

概述Textview和Checkbox都在Recyclerview中.最初选中所有复选框.我想阻止用户更改Checkboxes状态,但我不想阻止Recyclerview滚动.我想在我的片段类中而不是在适配器类中执行此 *** 作.如何防止用户更改Checkboxes状态?下面是适配器类中onBindViewHolder编写的示例代码.holder.cbox.setO

TextvIEw和CheckBox都在RecyclervIEw中.最初选中所有复选框.我想阻止用户更改CheckBoxes状态,但我不想阻止RecyclervIEw滚动.我想在我的片段类中而不是在适配器类中执行此 *** 作.

如何防止用户更改CheckBoxes状态?

下面是适配器类中onBindVIEwHolder编写的示例代码.

holder.cBox.setonCheckedchangelistener(new Compoundbutton.OnCheckedchangelistener() {        @OverrIDe        public voID onCheckedChanged(Compoundbutton buttonVIEw, boolean isChecked) {            //set your object's last status            tblFilm.setSelected(isChecked);        }    });

The above code used for first mode which allows user clicks on
checkBox.

After that I have second mode where I do not want to get clicked on
checkBox at all.

为此,我所做的就是下面.

optionsoff(recyclerVIEw);private static voID optionsOff(VIEwGroup layout) {        layout.setEnabled(false);        layout.setClickable(false);        for (int i = 0; i < layout.getChildCount(); i++) {            VIEw child = layout.getChildAt(i);            if (child instanceof VIEwGroup) {                optionsOff((VIEwGroup) child);            } else {                child.setEnabled(false);                child.setClickable(false);            }        }

我猜这个optionsoff()不起作用.因为它没有禁用复选框.我仍然可以点击复选框.我需要有关第二种方法的帮助,该方法禁用了RecyclervIEw项目.

解决方法:

每个CheckBox都有方法setEnabled.

onBindViewHolder中,您可以获得所需复选框的引用并将其禁用.

像这样的东西:

public voID onBindVIEwHolder(VIEwHolder holder, final int position) {    holder.checkBox.setEnabled(data.get(position).isEnabled());}

下面的答案是通过xml的工作解决方案.

总结

以上是内存溢出为你收集整理的如何在Android中禁用RecyclerView项目?全部内容,希望文章能够帮你解决如何在Android中禁用RecyclerView项目?所遇到的程序开发问题。

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

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

原文地址: https://outofmemory.cn/web/1108266.html

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

发表评论

登录后才能评论

评论列表(0条)

保存