viewbinding控件id和any属性名称一致,然后使用反射填充数据
fun ViewBinding.invoke(any: Any){
any.javaClass.apply {
declaredFields.forEach {
kotlin.runCatching {
it.isAccessible = true
val value = it[any].toString()
val view = this@invoke.javaClass.getDeclaredField(it.name).get(this@invoke)
when(view){
is TextView -> view.text = value
is ImageView -> view.load(value)
}
}
}
}
}