android可见数据绑定与双向



我正试图通过点击其内容动态显示和隐藏一个expandleMenu。

<LinearLayout
android:id="@+id/expandableMenu"
android:visibility='@{vm.isShow? View.VISIBLE : View.GONE}'
style="@style/LinearVerticalNoPadding">

它工作完美,但如果我想使用它作为双向绑定。出现错误。
android:visiblity='@={isShow? View.VISIBLE : View.GONE}'

表达式'((isShow) ?(android.view.View.VISIBLE): (android.view.View.GONE))'不能反转,所以它不能用于双向绑定


android:visibility='@={vm.showMenu, default=gone}' 因此,我决定将可见性直接与Int类型绑定,而不是Boolean

。But It says

无法找到<android.widget的getter。LinearLayout>接受参数类型'int'

是否有一种合适的方法来绑定可见性与2ways绑定?

双向数据绑定不能与三元操作符一起工作,因为双向数据绑定不仅将变量值映射到xml,而且还将xml值存储回变量中,因此要使以下语句工作

android:visiblity='@={isShow? View.VISIBLE : View.GONE}

您需要删除三元操作符,例如:

android:text="@={model.name}"

android:checked="@={viewmodel.rememberMe}"

详细研究https://developer.android.com/topic/libraries/data-binding/two-way

相关内容

  • 没有找到相关文章

最新更新