【发布时间】:2019-06-23 06:48:13
【问题描述】:
在 Recyclerview 上使用数据绑定时未调用 onBindViewHolder。 因此,Activity 显示空白屏幕。
当我在 logcat 上看到时,列表大小和 itemCount 为 20,但从未调用过 onBindViewHolder 方法。
class NewsAdapter : RecyclerView.Adapter<NewsAdapter.ViewHolder>() {
private val listArticle = mutableListOf<Article>()
fun update(list: List<Article>) {
listArticle.addAll(list)
notifyDataSetChanged()
}
override fun onCreateViewHolder(viewGroup: ViewGroup, viewType: Int): NewsAdapter.ViewHolder {
return ViewHolder(viewGroup)
}
class ViewHolder(
private val parent: ViewGroup,
private val binding: AdapterNewsBinding = DataBindingUtil.inflate(
LayoutInflater.from(parent.context),
R.layout.adapter_news,
parent,
false
)
) : RecyclerView.ViewHolder(binding.root) {
fun bind(article: Article) {
binding.article = article
}
}
override fun onBindViewHolder(viewHolder: ViewHolder, position: Int) {
Log.d("NewsAdapter", "onBindViewHolder")
viewHolder.bind(listArticle[position])
}
override fun getItemCount() = listArticle.size
}
如何在 Recyclerview 中通过数据绑定调用 onBindViewHolder? 这样我就可以在 Activity 上显示数据了。
【问题讨论】:
标签: android mvvm data-binding android-recyclerview android-livedata