Android: textAlignment с использованием привязки данных (TextView) - PullRequest
0 голосов
/ 19 декабря 2018

Я хочу применить 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 голосов
/ 20 декабря 2018

Это работает, если вы сделаете это следующим образом:

В вашем макете привязки импорта данных Просмотрите и используйте его константы выравнивания:

<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;

Для получения дополнительной информации об этих константах посмотрите документацию здесь .

В вашем конкретном случае вы можете написать:

<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>
...