Применение пользовательского шрифта для всего приложения на Android

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

Моя тема выглядит так:

<style name="MyTheme" parent="Theme.AppCompat.DayNight.NoActionBar">
    <!-- Other attributes -->
    <item name="fontFamily">@font/custom_font</item>
</style>

Шрифт правильно применяется в BottomNavigationView и Button, но не в Toolbar или TextView с style (например, Body1).

Есть ли простой способ установить собственный шрифт для всего приложения? Нужно ли переопределять каждый стиль, чтобы добавить атрибут fontFamilly?

Обновление: я использовал атрибут style для установки внешнего вида текста вместо android:textAppearance. Использование более позднего исправил большинство моих проблем с пользовательским шрифтом. Теперь только Toolbar по-прежнему использует шрифт по умолчанию.


person Gaëtan    schedule 12.09.2017    source источник


Ответы (2)


Я не думаю, что есть способ применить широкое приложение шрифта, но возможна широкая активность.

Проверьте эту каллиграфию, она работает как шарм.

person Tony Lin    schedule 12.09.2017
comment
Я уже использую Calligraphy, и я надеялся удалить эту зависимость с помощью встроенной поддержки Android для пользовательского шрифта. Я оставлю каллиграфию, если это невозможно (пока). - person Gaëtan; 13.09.2017

Это идеальная реализация.

https://futurestud.io/tutorials/custom-fonts-on-android-library-recommendations

Библиотека:

https://github.com/chrisjenx/Calligraphy

person sam    schedule 12.09.2017
comment
если вы найдете мой ответ полезным, не стесняйтесь проголосовать за него. Вы также можете пометить его как решение своего вопроса, нажав на зеленую галочку. - person sam; 12.09.2017
comment
Я уже использую Calligraphy, и я надеялся удалить эту зависимость с помощью встроенной поддержки Android для пользовательского шрифта. Я оставлю каллиграфию, если это невозможно (пока). - person Gaëtan; 13.09.2017