Атрибут fontFamily не работает через textAppearance

У меня такой стиль:

 <style name="Text.Light">
        <item name="android:fontFamily">@font/open_sans_light</item>
    </style>

Если я установил для него значение TextView в xml через textAppearance, например android:textAppearance="@style/Text.Italic", во время разработки он показывает курсивный шрифт, но во время выполнения это не влияет. Но если использовать fontFamily непосредственно в TextView, например android:fontFamily="@font/open_sans_italic", он отлично работает в обоих случаях (дизайн и время выполнения). Что я делаю неправильно? Вот мое семейство шрифтов xml:

<?xml version="1.0" encoding="utf-8"?>
<font-family xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    tools:ignore="UnusedAttribute">

    <font
        android:font="@font/open_sans_regular"
        android:fontStyle="normal"
        android:fontWeight="400"
        app:font="@font/open_sans_regular"
        app:fontStyle="normal"
        app:fontWeight="400" />

    <font
        android:font="@font/open_sans_italic"
        android:fontStyle="italic"
        android:fontWeight="400"
        app:font="@font/open_sans_italic"
        app:fontStyle="italic"
        app:fontWeight="400" />
</font-family>

person Axbor Axrorov    schedule 18.07.2019    source источник
comment
в настоящее время ваш стиль в вопросе open_sans_light. Я просто тестирую и вижу, что курсивный шрифт все еще работает хорошо, можете ли вы поделиться своим шрифтом и какое устройство, API вы тестируете   -  person Linh    schedule 19.07.2019
comment
@PhanVanLinh спасибо за ответ. Я нашел, где была проблема. Я выбираю textViewStyle в своей AppTheme, и там есть fontFamily. Согласно документации textAppearance имеет минимальный приоритет и не может переопределять другие стили, определенные в теме или где-либо еще.   -  person Axbor Axrorov    schedule 19.07.2019


Ответы (1)


Проблема заключалась в том, что я выбрал textViewStyle в своем AppTheme, а там было fontFamily. Согласно post textAppearance имеет минимальный приоритет и не может переопределить другие стили, определенные в теме или где-либо еще.

person Axbor Axrorov    schedule 19.07.2019