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)
}
上一篇下一篇

猜你喜欢

热点阅读