android– 在recyclerview的所有项目中更改视图的可见性

android– 在recyclerview的所有项目中更改视图的可见性,第1张

概述我的recyclerview项目中有一个CheckBox可见的CheckBox.当我对其中一个项目进行longClick时,我想让它在recyclerview中的所有项目都可见.所以我这样做了:holder.faviorateVideoItemRelative.setOnLongClickListener(newView.OnLongClickListener(){publicbooleano

我的recyclervIEw项目中有一个CheckBox可见的CheckBox.当我对其中一个项目进行longClick时,我想让它在recyclervIEw中的所有项目都可见.所以我这样做了:

    holder.faviorateVIDeoItemrelative.setonLongClickListener(new VIEw.OnLongClickListener() {        public boolean onLongClick(VIEw arg0) {            holder.chk_faviorateVIDeo.setVisibility(VIEw.VISIBLE);           // holder.chk_faviorateVIDeo.setChecked(!holder.chk_faviorateVIDeo.isChecked());            return  true ;        }    });

但这将使CheckBox仅对当前项目可见.
我甚至将我的代码移到了我的VIEwHolder类,但没有任何改变.如果没有循环或重新绘制recyclervIEw,我怎么能这样做呢?
我需要做一些像androID的默认文件管理器长按和选择.
提前致谢 .

解决方法:

您的持有人仅持有当前项目,这就是您仅在此项目中看到结果的原因.

第一个选项只是制作一些布尔标志并调用notifyDataSetChanged(),在onBindVIEwHolder()中只使用该标志来设置可见性.

您还可以尝试创建CheckBoxes或Holders的集合,并在长按下迭代它们以使复选框可见.至于我,这不是最糟糕的选择.

如果您不希望有一个循环,我看到的另一种方法是实现Observer模式 – 在复选框创建时,您应该将其添加为订阅者以接收可见性通知.

此处也很有可能使用RX:
– 长按一下你发出事件
– 在您订阅该事件的复选框之前.
它也与观察者模式有关.

总结

以上是内存溢出为你收集整理的android – 在recyclerview的所有项目中更改视图的可见性全部内容,希望文章能够帮你解决android – 在recyclerview的所有项目中更改视图的可见性所遇到的程序开发问题。

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

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存