【已解决】 RecyclerView重复加载item
使用RecyclerView,循环一遍之后,从第17项开始就又重新循环,导致item重复,我直接将后面的都设置为不可见,解决了这种情况,这种方式感觉有些掩耳盗铃了? 可以说说这种方式存在的缺陷吗?
// 实现具体功能 & 点击事件
override fun onBindViewHolder(holder: RecyclerView.ViewHolder, position: Int) {
val bookListItems = getItem(position)!! // 具体数据
when(holder){
is TextCardViewHeaderViewHolder -> {
if (position < 16) {
holder.tvCateName.text = bookListItems.title
holder.tvWordNum.text = bookListItems.wordNum.toString()
Glide
.with(fragment)
.load(bookListItems.cover)
.into(holder.ivCover)
} else {
// 将重复加载的数据隐藏
holder.tvCateName.isVisible = false
holder.tvWordNum.isVisible = false
holder.ivCover.isVisible = false
}
}
}
}
你这个代码不对,哪有这样写的。按你这个意思,前16个对象就可以显示图片,后面的就隐藏一些控件。
我虽然不懂你的意思是不是你想要的,但是RecyclerView,有if就有要有else,你这里是写了else里的内容
但是,你if里没有
如果你不写全套,你后面全部都隐藏了。