相关疑难解决方法(0)

高阶函数作为绑定适配器的问题

我正在尝试使用Kotlin/Android数据绑定尝试将函数作为绑定适配器中的参数.此示例代码e: error: cannot generate view binders java.lang.StackOverflowError在构建时抛出,而日志中没有其他有用信息.

这是我的绑定适配器:

@JvmStatic
@BindingAdapter("onDelayedClick")
fun onDelayedClick(view: View, function: () -> Unit) {
    // TODO: Do something
}
Run Code Online (Sandbox Code Playgroud)

XML:

        <View
            android:id="@+id/test_view"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            app:onDelayedClick="@{() -> viewModel.testFunction()}"/>
Run Code Online (Sandbox Code Playgroud)

我的ViewModel中的方法和方法:

fun testFunction() = Unit
Run Code Online (Sandbox Code Playgroud)

我一直在努力解决这个问题,而且我尝试过的任何工作都没有,所以任何帮助都会受到赞赏.

data-binding android higher-order-functions kotlin

14
推荐指数
1
解决办法
1111
查看次数