这是style.xml
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="android:fontFamily" tools:targetApi="jelly_bean">@font/montserrat_regular</item>
<item name="fontFamily">@font/montserrat_regular</item>
</style>
以及manifest.xml
<application
android:name=".Amelio"
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme"
我想要的是在AppTheme中设置fontFamily所以我不必在app中的每个组件上设置它。 但我想在应用程序中的一些TextView上设置自定义字体。
问题是当我在fontFamily
中设置AppTheme
时,我无法在任何fontFamily
上设置字体或TextView
。但是,当我从fontFamily
中删除font
和AppTheme
时,我可以设置该设置。这是预览 -
答案 0 :(得分:0)
Khemraj建议使用https://stackoverflow.com/a/16407123/6891563是正确的,因为当您要覆盖某个组件的属性时,您需要覆盖其样式,因此添加时(取自侯赛因·埃尔·费基):
<!-- Into a styles.xml--!>
<style name="RobotoTextViewStyle" parent="android:Widget.TextView">
<item name="android:fontFamily">sans-serif-light</item>
</style>
<!-- Into a themes.xml--!>
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="android:textViewStyle">@style/RobotoTextViewStyle</item>
<item name="buttonStyle">@style/RobotoButtonStyle</item>
</style>
您将覆盖所有TextView的样式,因此,每当您使用AppTheme时,TextView组件都会侦听并使用RobotoTextViewStyle属性。