android fontFamily fallback字体缺少字形

时间:2018-02-07 12:18:52

标签: android fonts android-support-library font-face font-family

在使用Android支持库的Android上使用新的自定义字体时,我在Android 4.1(API 16)上遇到显示问题,而在8.0(API 26)上正常工作:

API 16, NOK API 26, OK

以下是activity_main.xml内容,使用自定义字体AvenirNext Medium(存储在res/font/avenirnext_medium.ttf中):

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:gravity="center">
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:fontFamily="@font/avenirnext_medium"
            android:text="Hello world?"/> <!-- this is an unbreakable space -->
    </LinearLayout>

我支持SDK 26,同时支持SDK 16。

如何摆脱API 16中的替换字符' '?

1 个答案:

答案 0 :(得分:0)

感谢@HermantParmar评论,看起来像uncrable space这样的特殊字符必须通过unicode值(\u00A0)出现。所以我修改了text属性,它现在正常工作:

android:text="Hello\u00A0world?"/>