07-09|07-09 RecycleView 简单使用三 (实现单选/多选模式)
在开发过程中RecycleView实现单选效果场景还是比较多 (支付.礼物 什么什么的等等)
今天就总结整理下我在项目中单选是如何实现的.
能力有限,如有不足,希望多多指教!
主要知识点:
1. 设置标示 (让程序明白 我是不是改设置此项为选中状态)
2. 局部更新 (避免 闪屏,无效渲染)
PS:加载基础列表/网格等实现有问题的同学可参考我之前的文章补充.
单选:
第一步: 在实体类中添加字段isSelect (字段名随意) 第二步: 填充数据时 根据此字段 作出相应逻辑 例如显示隐藏等.
if (item.isSelected)
{
helper.getView(R.id.iv_gift_select).setVisibility(View.VISIBLE);
} else {
helper.getView(R.id.iv_gift_select).setVisibility(View.GONE);
}
第三步:完成局部更根
@Override
public void onBindViewHolder(@NonNull BaseViewHolder holder, int position, @NonNull List
第四步:OnItemClick 使用
@Override
public void onItemClick(BaseQuickAdapter adapter, View view, int position) {LiveInfo liveInfo = (LiveInfo) adapter.getItem(position);
liveInfo.isSelected = true;
if (oldPosition != -1) {
LiveInfo oldInfo = (LiveInfo) adapter.getItem(oldPosition);
oldInfo.isSelected = false;
adapter.notifyItemChanged(oldPosition, "1");
}
adapter.notifyItemChanged(position, "1");
oldPosition = position;
}
多选:
多选提供思路:
1.不需要记录原来选中位置
@Override
public void onItemClick(BaseQuickAdapter adapter, View view, int position) {LiveInfo liveInfo = (LiveInfo) adapter.getItem(position);
liveInfo.isSelected = true;
// 第二参数不为空即可,原因在下章局部更新介绍会介绍
adapter.notifyItemChanged(position, "1");
}
2.获取选中状态 【07-09|07-09 RecycleView 简单使用三 (实现单选/多选模式)】便利数据集合拿出所有标示为true 的即为全部选中集合.
文章图片
单选.png
推荐阅读
- 科学养胃,别被忽悠,其实真的很简单
- opencv|opencv C++模板匹配的简单实现
- 松软可口易消化,无需烤箱超简单,新手麻麻也能轻松成功~
- 2018-07-09|2018-07-09 Spring 的DBCP,c3p0
- 简单心理2019春A期+32+张荣
- 《算法》-图[有向图]
- android防止连续点击的简单实现(kotlin)
- 机器学习一些简单笔记
- Android超简单实现沉浸式状态栏
- v-charts简单使用