我试图在我的应用程序中添加多个字体系列。以下是添加“inter”字体的代码。
这里是values/typography.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<attr name="textAppearanceDisplayLargeBold" format="reference" />
<attr name="textAppearanceDisplayLargeSemiBold" format="reference" />
<attr name="textAppearanceDisplayLargeMediumBold" format="reference" />
<style name="TextAppearance.App.DisplayLarge" parent="TextAppearance.Material3.DisplayLarge">
<item name="fontFamily">@font/inter_font_family</item>
<item name="fontWeight">400</item>
</style>
<style name="TextAppearance.App.DisplayLarge.Bold">
<item name="fontWeight">700</item>
</style>
<style name="TextAppearance.App.DisplayLarge.SemiBold">
<item name="fontWeight">600</item>
</style>
<style name="TextAppearance.App.DisplayLarge.Medium">
<item name="fontWeight">500</item>
</style>
</resources>
字符串
这里是font/inter_font_family.xml
<?xml version="1.0" encoding="utf-8"?>
<font-family xmlns:app="http://schemas.android.com/apk/res-auto">
<font
app:font="@font/inter_regular"
app:fontStyle="normal"
app:fontWeight="400" />
<font
app:font="@font/inter_medium"
app:fontStyle="normal"
app:fontWeight="500" />
<font
app:font="@font/inter_semibold"
app:fontStyle="normal"
app:fontWeight="600" />
<font
app:font="@font/inter_bold"
app:fontStyle="normal"
app:fontWeight="700" />
</font-family>
型
这里是themes.xml
<style name="AppTheme" parent="Theme.Material3.Light.NoActionBar">
<item name="textAppearanceDisplayLarge">@style/TextAppearance.App.DisplayLarge</item>
<item name="textAppearanceDisplayLargeBold">
@style/TextAppearance.App.DisplayLarge.Bold
</item>
<item name="textAppearanceDisplayLargeSemiBold">
@style/TextAppearance.App.DisplayLarge.SemiBold
</item>
<item name="textAppearanceDisplayLargeMediumBold">
@style/TextAppearance.App.DisplayLarge.Medium
</item>
</style>
型
我的主要问题是fontWeight
在TextAppearance
样式中没有效果。如果我在TextAppearance
样式中设置单个字体(inter_bold,inter_light等),它就能工作并显示正确的字体。
1条答案
按热度按时间ilmyapht1#
不幸的是,在
TextAppearance
样式中指定字体系列时,fontWeight
属性可能无法正确应用。顺便说一下,你可以在typography.xml文件中为每个字体粗细定义单独的样式。参见下面:
字符串
在这个例子中,每个
TextAppearance
样式都显式地指定了所需的字体文件。这样,fontWeight
属性应该具有预期的效果,因为它现在应用于特定的字体文件。确保更新themes.xml文件以包含这些样式:
型
这应该解决了
fontWeight
属性不起作用的问题。每个TextAppearance
样式现在显式指定字体文件,允许您控制字体系列和粗细。希望有帮助!