【发布时间】:2019-11-13 17:54:48
【问题描述】:
我有一个像这样的 RecyclerView.Adapter:
internal class MyAdapter : RecyclerView.Adapter<MyAdapter.MyViewHolder>() {
private val data: List<MyModel> = SeedData().seed()
override fun onCreateViewHolder(v: ViewGroup, viewType: Int): MyViewHolder {
val binding = MyListitemBinding.inflate(LayoutInflater.from(v.context), v, false)
return MyViewHolder(binding)
}
override fun getItemCount() = data.size
override fun onBindViewHolder(holder: MyViewHolder, position: Int) {
holder.bind(data[position])
}
}
但是,只有 data 中的第一项被显示(即 onCreateViewHolder 和 onBindViewHolder 仅调用一次)。如何让它正确显示数据中的所有项目?
【问题讨论】:
-
所以
data.size没有返回1,它返回的数字不止一个——对吗? -
您的 RecyclerView 高度可能太小了。
-
@ReazMurshed 正确,数据有多个项目。
-
或者您的项目布局高度可能是 match_parent
-
是的,@moumenShobakey 是对的。如果您尝试滚动,则可以看到它再次调用
onBindViewHolder
标签: android android-recyclerview android-viewholder