Android数据绑定后备/默认值

ehm*_*ehm 23 data-binding android android-studio

我正在使用Android数据绑定,效果很好:

<TextView
android:text="@{ee.Name}"
...
Run Code Online (Sandbox Code Playgroud)

但如果我这样做,Android Studio设计师不会显示任何文字.没有文字我根本看不到TextView.这是可以理解的,因为我还没有绑定数据.是否存在可以显示的回退值或默认值,直到有真实数据?

Ban*_*eid 46

您应该阅读Android开发者网站上发布的数据绑定指南.本文档的最后一部分是Android Studio数据绑定支持,介绍如何使用可在设计阶段为您提供帮助的占位符.这很简单:

<TextView android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:text="@{user.firstName, default=Placeholder}"/>
Run Code Online (Sandbox Code Playgroud)

如果你想让带有空格的文本作为占位符,你可以使用单引号('),后引号(`)或 &quot;

android:text='@{user.firstName, default="Placeholder text"}'
android:text="@{user.firstName, default=`Placeholder text`}"
android:text="@{user.firstName, default=&quot;Placeholder text&quot;}"
android:text="@{user.firstName, default=@string/placeholder_text}"
Run Code Online (Sandbox Code Playgroud)

  • 对不起,我太早了.我想到了.如果有人需要这个:`android:background ='@ {ee.BackColor,default = @ drawable/colorPrimaryD}'```<drawable name ="colorPrimaryD">#FF627C1B </ drawable>` (4认同)

qin*_*iao 11

"预览"窗格显示数据绑定表达式的默认值.

android:text="@{user.firstName, default=PLACEHOLDER}"
Run Code Online (Sandbox Code Playgroud)

这可以设置默认值.

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="center_horizontal"
    android:text="@{defaultString ?? @string/hello_world}"/>
Run Code Online (Sandbox Code Playgroud)

  • 与“tools:text”属性相比,它有什么好处? (3认同)