要在RecyclerView上使用BindingAdapter,需要确保以下几点:
@BindingAdapter("app:items")
fun setItems(recyclerView: RecyclerView, items: List- ?) {
if (items != null) {
(recyclerView.adapter as? MyAdapter)?.submitList(items)
}
}
val recyclerView = findViewById(R.id.recyclerView)
recyclerView.adapter = MyAdapter()
如果仍然无法正常工作,可以尝试以下解决方法:
val recyclerView = findViewById(R.id.recyclerView)
val viewModel = ViewModelProviders.of(this).get(MyViewModel::class.java)
viewModel.items.observe(this, Observer { items ->
(recyclerView.adapter as? MyAdapter)?.submitList(items)
})
recyclerView.adapter = MyAdapter()
...
希望以上解决方法能帮助到您解决问题。