XML中的Android字体无法在7.0上运行

时间:2018-01-22 11:28:37

标签: android android-7.0-nougat android-typeface

大家好,                我在我的应用程序的xml中使用了Fonts。它在7.0以下的Android版本上运行良好。但不适用于7.0。我在drawable中创建了一个字体文件夹,并将所有字体放在那里。然后创建了这样的字体系列。

 <?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">
    <font
        android:font="@font/timeburnerbold"
        android:fontStyle="normal"
        android:fontWeight="400"
        app:font="@font/timeburnerbold"
        app:fontStyle="normal"
        app:fontWeight="400" />
    <font
        android:font="@font/typo_grotesk_bold"
        android:fontStyle="normal"
        android:fontWeight="700"
        app:font="@font/typo_grotesk_bold"
        app:fontStyle="normal"
        app:fontWeight="700" />
</font-family>

我的Gradle文件信息

compileSdkVersion 27
buildToolsVersion "26.7.2"
supportLibraryVersion = '27.0.0'

我在整个应用程序中使用它。它在6.0及以下的应用程序中完美运行。但不是7.0。不知道我在这里失踪了什么。任何人吗?

1 个答案:

答案 0 :(得分:1)

这很奇怪,但我找到了解决方案。看起来像SDK中的错误。在一个字体 - 家庭,如果您有两个不同系列的字体,如下面的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">
    <font
        android:font="@font/timeburnerbold"
        android:fontStyle="normal"
        android:fontWeight="400"
        app:font="@font/timeburnerbold"
        app:fontStyle="normal"
        app:fontWeight="400" />
    <font
        android:font="@font/typo_grotesk_bold"
        android:fontStyle="normal"
        android:fontWeight="700"
        app:font="@font/typo_grotesk_bold"
        app:fontStyle="normal"
        app:fontWeight="700" />
</font-family>

此类型的文件在7.0以后不起作用。 将其更改为

<?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">
    <font
        android:font="@font/typo_grotesk_regular"
        android:fontStyle="normal"
        android:fontWeight="400"
        app:font="@font/typo_grotesk_regular"
        app:fontStyle="normal"
        app:fontWeight="400" />
    <font
        android:font="@font/typo_grotesk_regular"
        android:fontStyle="italic"
        android:fontWeight="400"
        app:font="@font/typo_grotesk_regular"
        app:fontStyle="italic"
        app:fontWeight="400" />
    <font
        android:font="@font/typo_grotesk_bold"
        android:fontStyle="normal"
        android:fontWeight="700"
        app:font="@font/typo_grotesk_bold"
        app:fontStyle="normal"
        app:fontWeight="700" />
    <font
        android:font="@font/typo_grotesk_bold"
        android:fontStyle="italic"
        android:fontWeight="700"
        app:font="@font/typo_grotesk_bold"
        app:fontStyle="italic"
        app:fontWeight="700" />
</font-family>

真的适用于所有api。一个字体系列文件中的相同字体系列。不知道为什么会发生这种情况。