如何引用 kotlin 构造函数中定义的 xml 中的函数?
How to reference a function from xml that is defined in kotlin's constructor?
我尽量避免写额外的行
这个有效
class ViewModel(val clicked: () -> Unit){
fun click(){
clicked()
}
}
但如果可以的话我想这样写
class ViewModel(val clicked: () -> Unit)
Xml 看起来像这样
android:onClick="@{() -> viewModel.click()}"
or
android:onClick="@{() -> viewModel.clicked()}"
编写较短的版本失败,找不到方法 clicked()
我相信有了这个:
class ViewModel(val clicked: () -> Unit)
在您的 xml 中,您必须参考 lambda 的 invoke
方法。
所以像这样:
android:onClick="@{() -> viewModel.clicked.invoke()}"
编辑:或...
你不能只用这个吗?
android:onClick="@{viewModel.clicked}"
直接传递你的 lambda?
我尽量避免写额外的行
这个有效
class ViewModel(val clicked: () -> Unit){
fun click(){
clicked()
}
}
但如果可以的话我想这样写
class ViewModel(val clicked: () -> Unit)
Xml 看起来像这样
android:onClick="@{() -> viewModel.click()}"
or
android:onClick="@{() -> viewModel.clicked()}"
编写较短的版本失败,找不到方法 clicked()
我相信有了这个:
class ViewModel(val clicked: () -> Unit)
在您的 xml 中,您必须参考 lambda 的 invoke
方法。
所以像这样:
android:onClick="@{() -> viewModel.clicked.invoke()}"
编辑:或... 你不能只用这个吗?
android:onClick="@{viewModel.clicked}"
直接传递你的 lambda?