Android: пользовательский шрифт работает для TextView, а не для кнопки - PullRequest
0 голосов
/ 06 июня 2018

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

Я использую Android Studio 3.1.2 с minSdkVersion 26 и Kotlin.

res/font/font.xml

<?xml version="1.0" encoding="utf-8"?>
<font-family xmlns:android="http://schemas.android.com/apk/res/android">
    <font
        android:fontStyle="normal"
        android:fontWeight="400"
        android:font="@font/my-custom-font" />
</font-family>

res / layout / фрагмент.xml

...
<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/myButton"
    android:maxWidth="30dp"
    android:minWidth="30dp"
    android:maxHeight="40dp"
    android:minHeight="40dp"
    android:fontFamily="@font/my-custom-font"
    android:textSize="20dp"
    android:text="a" />
...

Работает выше.Замените TextView на Button, и он перестанет работать.

Редактировать: я хочу использовать пользовательский шрифт для хранения значков наших кнопок вместо использования изображений и кнопок изображений.Мы считаем, что пользовательский шрифт проще в управлении, чем изображения.

Ответы [ 2 ]

0 голосов
/ 07 июня 2019

Используйте app:fontFamily="@font/my-custom-font" в своем стиле, а не android:fontFamily="@font/my-custom-font"

0 голосов
/ 06 июня 2018

Добавьте стиль к своей кнопке:

Создайте новый стиль в styles.xml:

<style name="main_button">
    <item name="android:fontFamily">@font/my-custom-font</item>
    <item name="android:background">@drawable/btn_blue</item>
    <item name="android:textColor">#FFFF</item>
    <item name="android:textAllCaps">false</item>
    <item name="android:foreground">?attr/selectableItemBackground</item>
</style>

и введите любые значения, которые вы хотите.Обязательно укажите fontFamily:

Затем на кнопку добавьте стиль:

<Button
    android:id="@+id/id"
    style="@style/main_button" />
...