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

Str*_*ove 3 android android-databinding

我想使用数据绑定将 android:textAlignment 应用于 TextView,如下所示:

 android:textAlignment="@{viewModel.switcher ? START : CENTER}"
Run Code Online (Sandbox Code Playgroud)

现在我已经实现了它抛出重力:

        <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"/>
Run Code Online (Sandbox Code Playgroud)

但是我可以直接抛出数据绑定来实现textAlignment吗?

小智 5

如果你这样做的话,这是可行的:

在数据绑定布局中导入 View 并使用它的对齐常量:

<layout>

    <data>
         <import type="android.view.View" />
    </data>

    <TextView
        ...
        android:textAlignment="@{View.TEXT_ALIGNMENT_CENTER}"
        ... />

</layout>
Run Code Online (Sandbox Code Playgroud)

您可以使用以下常量: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;

有关这些常量的更多信息,请查看此处的文档。

根据您的具体情况,您可以写:

<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>
Run Code Online (Sandbox Code Playgroud)