我如何更改我的项目中的字体粗细,该项目对所有文本视图都有默认的 fontFamily?

How can I change font weight in my project which has a default fontFamily for all textviews?

我有一个项目,在这个项目中,我以 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>

如何更改它们在不同 XML 文本视图中的权重?

嗯,我能想到的唯一方法就是在 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>

然后对于任何不使用默认 montserratTextView,即也许您想要 montserrat_medium:

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