Подтвердить что ты не робот

Использование "android: textAppearance" в TextView/EditText завершается с ошибкой, но работает "стиль"

Это образец TextView в XML, который правильно применит стиль TextContactContactName к TextView.

<TextView
        android:id="@+id/name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@id/photo"
        android:layout_alignTop="@id/photo"
        android:paddingLeft="10dp"
        android:text="First Last"
        style="@style/TextContactContactName"
        />

Теперь у меня есть некоторые другие вещи, которые нужно установить для этого элемента, которые не связаны с текстом. Поэтому я попытался переместить TextContactContactName и применить его через "android: textAppearance"

<TextView
    android:id="@+id/name"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_toRightOf="@id/photo"
    android:layout_alignTop="@id/photo"
    android:paddingLeft="10dp"
    android:text="First Last"
    android:[email protected]/TextContactContactName"
    />

К несчастью, форматирование текста не применяется.

Вот как выглядит стиль (хранящийся в res/values/styles-text.xml):

<style name="TextContactContactName">
    <item name="android:textSize">24sp</item>
    <item name="android:textColor">#333333</item>
    <item name="android:shadowColor">#ffffff</item>
    <item name="android:shadowDx">0</item>
    <item name="android:shadowDy">1</item>
    <item name="android:shadowRadius">1</item>
</style>

Я неправильно использую тег textAppearance?

Я тестировал на Android 2.2 - HTC Desire.

4b9b3361

Ответ 1

Хорошо, похоже на мою ошибку. Я сделал быстрый тест:

<TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Text styled using 'style'."
        style="@style/UiTestTextView"
        />
<TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Text styled using 'textAppearance'."
        android:textAppearance="@style/UiTestTextView"
        />

и styles-text.xml:

<style name="UiTestTextView">
    <item name="android:textColor">#ff0000</item>
    <item name="android:textSize">16sp</item>

    <item name="android:shadowColor">#ffffff</item>
    <item name="android:shadowDx">1</item>
    <item name="android:shadowDy">2</item>
    <item name="android:shadowRadius">3</item>
</style>

Важно помнить, что элементы shadow* не являются текстовыми свойствами. И как таковой не будет применяться через textAppearance.

Я собираюсь спросить в списке рассылки разработчиков Android, если это желаемое поведение.