我想使用像这样的数据绑定将android:textAlignment应用于TextView:
android:textAlignment="@{viewModel.switcher ? START : CENTER}"
到目前为止,我已经实现了它的引力:
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:text="@{viewModel.text}"
android:textAlignment="gravity"
android:gravity="@{viewModel.switcher ? Gravity.LEFT : Gravity.CENTER}"
android:textSize="14sp"/>
但是我可以直接实现textAlignment抛出数据绑定吗?
答案 0 :(得分:0)
如果您这样操作,它将起作用:
在数据绑定布局中导入View并使用其对齐常量:
<layout>
<data>
<import type="android.view.View" />
</data>
<TextView
...
android:textAlignment="@{View.TEXT_ALIGNMENT_CENTER}"
... />
</layout>
您可以使用以下常量:View.TEXT_ALIGNMENT_INHERIT; View.TEXT_ALIGNMENT_GRAVITY; View.TEXT_ALIGNMENT_TEXT_START; View.TEXT_ALIGNMENT_TEXT_END; View.TEXT_ALIGNMENT_CENTER; View.TEXT_ALIGNMENT_VIEW_START; View.TEXT_ALIGNMENT_VIEW_END;
有关这些常量的更多信息,请查看文档here。
在您的特定情况下,您可以编写:
<layout>
<data>
<import type="android.view.View" />
</data>
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:text="@{viewModel.text}"
android:textAlignment="@{viewModel.switcher ? View.TEXT_ALIGNMENT_VIEW_START : View.TEXT_ALIGNMENT_CENTER}"
android:textSize="14sp"/>
</layout>