Почему textStyle курсив не применяется в макете Android для других шрифтов, чем серифит?

Ниже приведен простой фрагмент xml, для которого android:textStyle="italic" не применяется.

Если я удалю android:textStyle="italic, появится текст.

<TextView
    android:text="row one"
    android:textSize="15pt"
    android:typeface="serif"
    android:textStyle="italic"
    android:textColor="#00abcd"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:layout_weight="1"/>

В приведенном выше android:textStyle="italic" работает только для android:typeface="serif", если я меняю шрифт на sans, monospace или normal, android:text не отображается.

Почему это?

Ответ 1

попробуйте сделать текст курсивом через файл строк, это альтернатива этому, может помочь вам

Пример

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="Row_one"><i>Row one</i></string>
    <string name="Row_two"><i>Row two</i></string>
</resources>

Ответ 2

Я вам не помогу, но у меня такая же проблема при настройке стиля Typeface + в коде, но только на некоторых устройствах Samsung, поэтому он может быть специфичным для устройства/производителя.

int supportedStyles = Typeface.create(TypeFace.DEFAULT, Typeface.BOLD_ITALIC).getStyle();
boolean italicSupported = (supportedStyles & Typeface.ITALIC) != 0;

italicSupported всегда равно true (кроме Monospace), но на нескольких устройствах Samsung (Galaxy II, Note 8) текст не отображается курсивом. Nexus 7 в порядке, Archos 80 в порядке.