包含dataBinding布局时如何使用三元运算符?我试图包括一些TextView的文本长度不同的布局。这是我的xml代码:
dataBinding
TextView
xml
<include android:id = "@+id/toolbar_write" layout = "@{textTitle.length > 0 ? @layout/toolbar_write : @layout/toolbar_show}" />
但在预览中什么都不包括。我错过了什么?
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的值影响了应该生成什么代码。
<include android:id="@+id/bar" layout="@layout/bar" />
<TextView android:id="@+id/greeting">
FooBindingImpl
fooBinding.bar.greeting.setText("hello")
TextView#setText()
<include>
layout
1条答案
按热度按时间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
的值影响了应该生成什么代码。