В чем разница между стилями TextView и атрибутами android: textAppearance?

Если я определяю свой TextView как:

 <TextView
        style="@android:style/TextAppearance.DeviceDefault.Large"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!" />

это в основном то же самое, что и делать:

 <TextView
        android:textAppearance="@android:style/TextAppearance.DeviceDefault.Large"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!" />

Я знаю, что style - это своего рода более широкий классификатор (т. android:textAppearance Нельзя устанавливать все атрибуты в android:textAppearance), но затем возникает вопрос: зачем беспокоиться? Есть ли преимущество использования android:textAppearance over style?

Ответ 1

Вы можете иметь только один атрибут стиля для каждого представления, но использование TextAppearance позволяет по существу определять стиль, используя ограниченный набор атрибутов, соответствующих тексту. Вы можете использовать как стиль, так и TextAppearance в одном представлении.

Ответ 2

Кажется, что стиль является атрибутом для всех представлений, даже TextView и textAppearance применяют только некоторые "компоненты стиля", которые доступны только для текстов. Вы можете применять свои собственные стили в обоих стилях.

https://developer.android.com/guide/topics/resources/style-resource.html https://developer.android.com/reference/android/R.attr.html#textAppearance

textAppearance

По умолчанию появляется текст: цвет, шрифт, размер и стиль.

стиль

Это относится ко всему

Ответ 3

Из стилей и тем https://developer.android.com/guide/topics/ui/look-and-feel/themes#textappearance

Одно ограничение для стилей заключается в том, что вы можете применять только один стиль к представлению. Однако в TextView вы также можете указать атрибут TextAppearance, который работает аналогично стилю

TextAppearance позволяет вам определять стили для конкретного текста, оставляя стиль Views доступным для других целей. Однако обратите внимание, что если вы определяете какие-либо текстовые атрибуты непосредственно в представлении или в стиле, эти значения переопределяют значения TextAppearance.