我正在使用jetpack compose和material 3:v1.2.1开发一个应用程序,我需要一个特定的文本来具有僵局字体。所以我下载了字体并将其添加到字体资源中并将其添加为
FontFamily
,如下所示:
val staleMate = FontFamily(
Font(R.font.stalemate)
)
并像这样使用
FontFamily
:
Text(text = "The Light",
style = TextStyle(
brush = Brush.linearGradient(
colors = listOf(MaterialTheme.colorScheme.primary, MaterialTheme.colorScheme.tertiary),
),
fontSize = MaterialTheme.typography.displayMedium.fontSize,
fontFamily = staleMate
),
modifier = modifier
)
现在,当我在三星 A24 中打开应用程序时,字体显示正确,完全没有问题(这款手机有 android 14)。 但是当我在装有 Android 8 的华为 psmart 中打开应用程序时,字体未加载,应用程序使用默认字体。 所以我尝试了可下载字体,因为文档建议使用
GoogleFonts
可下载字体。但这也不起作用。所以现在我不知道该怎么办。是否有任何原因导致该字体无法在我的 Android 8 设备上运行?我该如何解决此问题?
编辑 我决定在另外两台具有不同操作系统版本的设备上测试该字体,一台是带有 Android 10 的模拟器,另一台是带有 Android 5 的 Galaxy Tab 4。应用程序的两个实例都运行良好,并且字体显示完美。那么现在的问题是:为什么它在我的华为手机上不起作用?
问题出在我的华为本身的字体管理系统上。华为手机有一个主题应用程序,您可以在其中设置整个应用程序的字体和文本样式。当您更改文本样式和字体时,无论如何,它都会强制更改所有应用程序中的所有字体。因此,当我将字体设置为系统默认值时,应用程序可以正常工作并且字体也已加载。