我的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的所有项目中更改视图的可见性所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)