Android 字体未通过样式应用于按钮
Android font is not applied for button via style
我为 Button
创建了样式
<style name="MainButtonStyle">
<item name="android:background">@drawable/btn_main_selector</item>
<item name="android:textColor">@color/btn_main_text_color_selector</item>
<item name="android:minHeight">40dp</item>
<item name="android:textSize">18sp</item>
<item name="android:gravity">center</item>
<item name="android:textAppearance">@font/bold</item>
</style>
此样式适用于 AppTheme
<item name="android:buttonStyle">@style/MainButtonStyle</item>
bold.ttf
文件在 res/font
文件夹中
如果我 运行 一个应用程序,我仍然会看到默认字体。问题在哪里?
使您的按钮样式继承父按钮样式,例如
<style name="MainButtonStyle" parent="Widget.AppCompat.Button">
试试这个:
<style name="MainButtonStyle">
<item name="android:background">@drawable/btn_main_selector</item>
<item name="android:textColor">@color/btn_main_text_color_selector</item>
<item name="android:minHeight">40dp</item>
<item name="android:textSize">18sp</item>
<item name="android:gravity">center</item>
<item name="fontFamily">@font/bold</item>
</style>
textAppearance
允许您定义特定于文本的样式:字体系列、字体颜色、大小等。它不用于引用字体资源。
只需使用fontFamily
属性设置xml中的字体即可:
<style name="MainButtonStyle">
...
<item name="fontFamily">@font/bold</item>
</style>
或
<style name="MainButtonTextAppearance">
<item name="android:textColor">@color/btn_main_text_color_selector</item>
<item name="android:textSize">18sp</item>
<item name="fontFamily">@font/bold</item>
</style>
<style name="MainButtonStyle">
<item name="android:background">@drawable/btn_main_selector</item>
<item name="android:minHeight">40dp</item>
<item name="android:gravity">center</item>
<item name="android:textAppearance">@Style/MainButtonTextAppearance</item>
</style>
我为 Button
<style name="MainButtonStyle">
<item name="android:background">@drawable/btn_main_selector</item>
<item name="android:textColor">@color/btn_main_text_color_selector</item>
<item name="android:minHeight">40dp</item>
<item name="android:textSize">18sp</item>
<item name="android:gravity">center</item>
<item name="android:textAppearance">@font/bold</item>
</style>
此样式适用于 AppTheme
<item name="android:buttonStyle">@style/MainButtonStyle</item>
bold.ttf
文件在 res/font
文件夹中
如果我 运行 一个应用程序,我仍然会看到默认字体。问题在哪里?
使您的按钮样式继承父按钮样式,例如
<style name="MainButtonStyle" parent="Widget.AppCompat.Button">
试试这个:
<style name="MainButtonStyle">
<item name="android:background">@drawable/btn_main_selector</item>
<item name="android:textColor">@color/btn_main_text_color_selector</item>
<item name="android:minHeight">40dp</item>
<item name="android:textSize">18sp</item>
<item name="android:gravity">center</item>
<item name="fontFamily">@font/bold</item>
</style>
textAppearance
允许您定义特定于文本的样式:字体系列、字体颜色、大小等。它不用于引用字体资源。
只需使用fontFamily
属性设置xml中的字体即可:
<style name="MainButtonStyle">
...
<item name="fontFamily">@font/bold</item>
</style>
或
<style name="MainButtonTextAppearance">
<item name="android:textColor">@color/btn_main_text_color_selector</item>
<item name="android:textSize">18sp</item>
<item name="fontFamily">@font/bold</item>
</style>
<style name="MainButtonStyle">
<item name="android:background">@drawable/btn_main_selector</item>
<item name="android:minHeight">40dp</item>
<item name="android:gravity">center</item>
<item name="android:textAppearance">@Style/MainButtonTextAppearance</item>
</style>