android 包含带有数据绑定的布局时使用三元运算符

nc1teljy  于 2023-02-17  发布在  Android
关注(0)|答案(1)|浏览(227)

包含dataBinding布局时如何使用三元运算符?
我试图包括一些TextView的文本长度不同的布局。
这是我的xml代码:

<include
   android:id = "@+id/toolbar_write"
   layout = "@{textTitle.length > 0 ? @layout/toolbar_write : @layout/toolbar_show}"
 />

但在预览中什么都不包括。
我错过了什么?

5us2dqdw

5us2dqdw1#

我发现这个问题后,运行到什么,我假设是相同的错误,你:
包含的值(@{data.someBoolean?@布局/a:@layout/B})必须以@layout/开头。
我怀疑这是不可能的,因为数据绑定从布局生成代码,包括任何嵌套布局,例如,如果foo.xml声明<include android:id="@+id/bar" layout="@layout/bar" />,bar.xml定义<TextView android:id="@+id/greeting">,生成的FooBindingImpl允许您这样做:fooBinding.bar.greeting.setText("hello") .
例如,当你为文本视图的文本使用三进制时,一个变量的运行时值决定了传递给TextView#setText()的值,但是<include>layout的值影响了应该生成什么代码。

相关问题