首页 > 解决方案 > 如何更改我的项目中的字体粗细,该项目具有所有文本视图的默认 fontFamily?

问题描述

我有一个项目,在这个项目中,我以 AppTheme 的风格为所有文本视图定义了 fontFamily。

fontFamily 是montserrat但在我使用的文本视图中montserrat_semiboldmontserrat_regularmontserrat_medium

  <style name="AppTheme" parent="Theme.MaterialComponents.NoActionBar">
        <!-- Customize your theme here. -->
        <item name="android:textViewStyle">@style/MontserratTextViewStyle</item>

        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
    </style>

    <style name="MontserratTextViewStyle" parent="android:Widget.TextView">
        <item name="android:fontFamily">@font/montserrat</item>
    </style>

如何在 textview 的不同 XML 中更改它们的权重?

标签: androidfontsfont-familytext-styling

解决方案


Hmm the only way I can think of doing that is to create multiple styles in your styles.xml:

<style name="MontserratTextViewStyle" parent="android:Widget.TextView">
    <item name="android:fontFamily">@font/montserrat</item>
</style>

<style name="MontserratTextViewSemiBoldStyle" parent="android:Widget.TextView">
    <item name="android:fontFamily">@font/montserrat_semibold</item>
</style>

<style name="MontserratTextViewRegularStyle" parent="android:Widget.TextView">
    <item name="android:fontFamily">@font/montserrat_regualr</item>
</style>

<style name="MontserratTextViewMediumStyle" parent="android:Widget.TextView">
    <item name="android:fontFamily">@font/montserrat_medium</item>
</style>

Then for any TextView which doesn't use the default montserrat i.e. maybe you want montserrat_medium:

<TextView
    style="@style/MontserratTextViewMediumStyle"
   ....
/>

推荐阅读