在Recyclerview中使用gettitemcount和ListAdapter



我想做一些非常简单的事情:

在recyclerview中只显示一定数量的项目(比如只显示5个)。

如我们所知,使用ListAdapter使用DiffUtil,您不需要重写getItemCount()

方法。但是我需要显示固定数量的条目,所以我重写了这个方法。

class AllNewsAdapter : ListAdapter<Article, AllNewsAdapter.AllNewsViewHolder>(AllNewsDiffCallback()) {
var list: List<Article> = listOf()
private val limit = 5
override fun getItemCount(): Int {
return if (list.size > limit){
limit
} else{
list.size
}
}
}

使用此方法,在recyclerview中不显示任何项。

但是当我删除整个getItemCount()方法时,所有项都会显示出来,这是我不想要的

哦!,我也试过使用:

return Math.min(list.size(), 5)

but no luck(没有物品显示)。

当使用RecyclerView.Adapter<>时,我可以这样做,但它不适用于ListAdapter<>

将此添加到适配器:

override fun submitList(list: MutableList<Article>?) {
// replace 5 with any number you want
if(list?.size?:0>5) super.submitList(list?.take(5))
else super.submitList(list)
}

相关内容

  • 没有找到相关文章

最新更新