RecyclerView 适配器 `onCreateViewHolder` 和 `onBindViewHolder` 只被调用一次
RecyclerView adapter `onCreateViewHolder` & `onBindViewHolder` invoked only once
我有一个 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 只调用一次)。我怎样才能让它正确显示数据中的所有项目?
上面评论的答案是正确的。我的列表项(视图)是全屏高度:
这意味着 RecyclerView 只会在您滚动到下一个元素时更新 ViewHolder。解决办法就是修改这几项的高度。
我有一个 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 只调用一次)。我怎样才能让它正确显示数据中的所有项目?
上面评论的答案是正确的。我的列表项(视图)是全屏高度:
这意味着 RecyclerView 只会在您滚动到下一个元素时更新 ViewHolder。解决办法就是修改这几项的高度。