ItemBinding获取position的三种方式
2021-06-24 本文已影响0人
千夜零一
第一种方式:
//viewModel中
fun onItemClick(item: Item){
val position = items.indexOf(item)
}
//布局中:
android:onClick="@{()->viewModel.onItemClick(item)}"
第二种方式:
布局中直接获取当前position:
viewModel.items.indexOf(item)
第三种方式:
//布局中dataBinding
<variable
name="position"
type="Integer" />
/**
* 第三种方式:viewModel中
* 通过注入方式把position传递进布局
*/
var itemBinding = ItemBinding.of<Item> { itemBinding, position, item ->
itemBinding.bindExtra(BR.position, position)
.set(BR.item, R.layout.scroll_tab_body)
.bindExtra(BR.viewModel, this@TabViewModel)
}