私のアプリケーションではSupport Library 27.0.2
経由でAndroidダウンロードフォントを使用して、API Guide on Android DevelopersのようにXMLでカスタムフォントを設定します。フォントは、各フォントファミリが初めてスクリーンに描画されるときを除いて、通常どおり適用されます。例えばダウンロード可能なフォントが正しくキャッシュされない
:私はActivityA
を開いた場合、そのToolbar
はデフォルトRobotoとTab1
タイトルが表示されますが、Tab2
とTab3
は私のカスタムフォントを使用します。 2回目のActivityA
が開かれても(アプリケーションを終了することなく)、問題は発生せず、すべてのタブでカスタムフォントが使用されます。 Tabのタイトルのほかに、私はツールバーの問題にも気づいた。これは同じケースです。最初に開いた後、フォントが正しく適用されます。
res/values/font_certs.xml
とres/font/font.xml
ファイルは、Android Studioで生成され、ただマニュアルに記載されているもののようなものですした。
<application ...>
<meta-data
android:name="preloaded_fonts"
android:resource="@array/preloaded_fonts" />
</application>
そしてres/values/arrays.xml
:
<resources>
<array name="preloaded_fonts">
<item>@font/lato</item>
<item>@font/lato_bold</item>
<item>@font/lato_light</item>
<item>@font/raleway</item>
<item>@font/raleway_semibold</item>
</array>
</resources>
ここ
<font-family xmlns:app="http://schemas.android.com/apk/res-auto"
app:fontProviderAuthority="com.google.android.gms.fonts"
app:fontProviderCerts="@array/com_google_android_gms_fonts_certs"
app:fontProviderPackage="com.google.android.gms"
app:fontProviderQuery="Lato" />
マニフェストです
フォントが適用されていますAppBarLayout
で次のテーマを使用して:
<style name="AppTheme.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" >
<item name="android:fontFamily">@font/raleway</item>
<item name="android:gravity">center_horizontal</item>
</style>
プロジェクトは、以下のバージョンを使用しています。問題は、API 21および27は、のように思える本当のネクサス6P実行されているAPIにAVD使用して再現した
minSdkVersion = 19
targetSdkVersion = 26
compileSdkVersion = 26
buildToolsVersion = '27.0.0'
playServicesVersion = '11.6.0'
フォントキャッシュに問題があります。それを修正したり、この問題をよりよく調査するにはどうすればよいですか?
これはおそらく少しお手伝いします:https://medium.com/@romainguy/androids-font-renderer-c368bbde87d9 – Danieboy