Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/210.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android数据绑定/BindingAdapter错误:{缺少返回语句} Android数据绑定/BindingAdapter错误:将函数传递给BindingAdapter(块:()->单元)时引发错误:错误:缺少返回语句。 |BindingAdapter.kt |activity_main.xml 解决方案1:_Android_Android Binding Adapter - Fatal编程技术网

Android数据绑定/BindingAdapter错误:{缺少返回语句} Android数据绑定/BindingAdapter错误:将函数传递给BindingAdapter(块:()->单元)时引发错误:错误:缺少返回语句。 |BindingAdapter.kt |activity_main.xml 解决方案1:

Android数据绑定/BindingAdapter错误:{缺少返回语句} Android数据绑定/BindingAdapter错误:将函数传递给BindingAdapter(块:()->单元)时引发错误:错误:缺少返回语句。 |BindingAdapter.kt |activity_main.xml 解决方案1:,android,android-binding-adapter,Android,Android Binding Adapter,使用字段语法 函数语法:❌ |单击=“@{()->viewModel.viewFun()}” 字段语法:✅ |单击=“@{viewModel.viewFun}” 解决方案2: 使用Lambda |ViewModel.kt Lambda-在使用参数块时工作良好 |带参数的块 附言:热爱你所做的。 @BindingAdapter("click") fun LottieAnimationView.click(block: () -> Unit) { se

使用字段语法


  • 函数语法:❌
|单击=“@{()->viewModel.viewFun()}”
  • 字段语法:✅
|单击=“@{viewModel.viewFun}”
解决方案2: 使用Lambda

|ViewModel.kt Lambda-在使用参数块时工作良好

|带参数的块
附言:热爱你所做的。
@BindingAdapter("click")
fun LottieAnimationView.click(block: () -> Unit) {
    setOnClickListener {
        block()
    }
}
<data>
    <variable
        name="viewModel"
        type="com.veldan.ViewModel" />
</data>

<View
        android:id="@+id/view"
        click="@{() -> viewModel.viewFun()}"
        android:layout_width="0dp"
        android:layout_height="0dp"   />

<View
        android:id="@+id/view"
        click="@{() -> viewModel.viewFun()}"
        android:layout_width="0dp"
        android:layout_height="0dp"   />
class ViewModel() {
     viewFun(){
        // logic
     }
}
class ViewModel() {
    val viewFun: () -> Unit = {
        // logic
     }
}
@BindingAdapter("click")
fun LottieAnimationView.click(block: (Param1, Param2, ...) -> Unit) {
    setOnClickListener {
        block()
    }
}