我正在尝试根据下面我的BaseObservable类中定义的布尔值动态设置和更改背景可绘制BaseObservable ,但是我收到一条错误消息,说它无法在“isFollowing”方法上进行双向数据绑定。

错误是这样的:

表达式“viewModel.isFollowing()”不能反转,因此不能用于双向绑定详细信息:双向绑定无法解析布尔属性“isFollowing”的setter

 private var isFollowing: Boolean = false

 @Bindable
 fun isFollowing(): Boolean {
      return isFollowing
 }
    
 @BindingAdapter("android:background")
 fun setIsFollowing(frameLayout: FrameLayout, isFollowing: Boolean) {

      if (this.isFollowing != isFollowing) {

           this.isFollowing = isFollowing
           if(this.isFollowing){
               frameLayout.background = frameLayout.context.getDrawable(R.drawable.following)
           }else{
               frameLayout.background = frameLayout.context.getDrawable(R.drawable.follow)
            }          
      }
  }
    

这是我的布局文件

  <FrameLayout
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:background="@={viewModel.isFollowing}"
       app:layout_constraintBottom_toBottomOf="parent"
       app:layout_constraintEnd_toEndOf="parent"
       app:layout_constraintRight_toRightOf="parent"
       app:layout_constraintTop_toTopOf="parent">

我按照建议尝试了这个,但没有快乐:

 companion object {

     private var isFollow: Boolean = false

     @JvmStatic
     val isFollowing: Boolean
     @Bindable get() = isFollow

  }
 

#1楼 票数:0

您可以将方法更改为 getter:

val isFollowing: Boolean
    @Bindable get() = _isFollowing

  ask by Jonathan translate from so

未解决问题?本站智能推荐:

2回复

双向数据绑定错误:无法解析布尔属性的 setter

我正在尝试在复选框上使用 2 路数据绑定: 这给了我以下错误: 数据绑定错误消息:表达式 viewModelExerciseListIndex.isActive() 无法反转:双向绑定无法解析布尔属性“isActive”的 setter 我有以下课程: 这是 SelectorViewMo
1回复

Android数据绑定:无法找到属性的setter

不确定它是如何工作的但是根据这篇文章 ,可以通过使用不同的命名空间来绑定特定的监听器。 我想用searchview做同样的事情并将QueryTextListener绑定到它但我收到以下错误: 我在ViewModel中做了什么: 和xml: 我的命名空间在布局标记中声明
26回复

无法解析Android数据绑定类

使用数据绑定时,我无法根据数据绑定指南获得类MainActivityBinding 我的布局名称是activity_main.xml 。 我还看到了Android - DataBinding - 如何以及何时生成 Binding 类? 但它帮不了我。
9回复

Android 数据绑定:无法解析符号

我曾尝试在 android studio 中使用测试版功能(数据绑定)。 按照android studio的指南,我可以在android studio中找到相关的类DataBindingInfo。 但是在我创建项目后不会生成数据绑定类。 有人可以帮忙吗? app 模块的 build.gradle
2回复

无法使Android双向数据绑定正常工作(IntelliJ IDEA)

我面临一个无法在IntelliJ IDEA中使用双向数据绑定的问题。 单向绑定效果很好。 这是我的设置: IntelliJ IDEA旗舰版2016.2.1 Android API:24 的Java:1.8.0_102 摇篮:2.14.1 这是我的
1回复

RecyclerView Items的Android双向数据绑定

将模型的数据单向绑定到 recyclerview 项目很容易,因为我们为项目提供信息,但在某些情况下,我们需要从项目中获取数据(而不是事件),例如作为项目的人员列表并输入每个人的电话号码在那些家伙身上。 为此,我需要双向绑定项目的电话数据,但适配器中没有生命周期所有者。 观察者的 onChang
2回复

Android数据绑定:无法解析符号setContentView

错误消息:无法解析setContentView for DataBinding。 我试图解决此问题,例如此处Android数据绑定:无法解析符号,但是什么也没有发生。 我试图使Studio无效并重新启动。 我试图清理并重建项目 什么都没发生。 我搜索了其他文章并说了同样的话
1回复

CustomView中的Android数据绑定 无法解析资源

尝试在CustomView(Group)中使用DataBinding 布局看起来像这样: CustomView(扩展FrameLayout)膨胀: 导致此错误: 生成的绑定类: