android:textAlignment使用数据绑定(TextView)

时间:2018-12-19 12:21:08

标签: android android-databinding

我想使用像这样的数据绑定将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抛出数据绑定吗?

1 个答案:

答案 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>