3 android android-recyclerview
我的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 ;
}
});
Run Code Online (Sandbox Code Playgroud)
但这将使CheckBox仅对当前项目可见.我甚至将我的代码移到了我的ViewHolder类,但没有任何改变.如果没有循环或重新绘制recyclerview,我怎么能这样做呢?我需要像android的默认文件管理器那样长按并选择.提前致谢 .
您Holder只保留当前项目,这就是您仅在此项目中看到结果的原因.
第一个选项只是制作一些布尔标志和调用notifyDataSetChanged(),onBindViewHolder()只需使用该标志来设置可见性.
此外,您可以尝试创建您的集合,CheckBoxes或者Holders在长按一下迭代它们以使复选框可见.至于我,这不是最糟糕的选择.
如果您不希望有一个循环,我看到的另一种方法是实现Observer模式 - 在复选框创建时,您应该将其添加为订阅者以接收可见性通知.
此外,很有可能在这里使用RX:
- 长时间点击你发出事件
- 然后在你订阅该事件的复选框之前.
它也与Observer模式有关.
| 归档时间: |
|
| 查看次数: |
1936 次 |
| 最近记录: |