Android自定义通知栏Notification字体适配问题
程序员文章站
2022-07-13 15:38:54
...
两种解决方案:
1.
Android 5.0之前可用:
android:style/TextAppearance.StatusBar.EventContent.Title // 通知标题样式
android:style/TextAppearance.StatusBar.EventContent // 通知内容样式
Android 5.0及更高版本:
android:style/TextAppearance.Material.Notification.Title // 通知标题样式
android:style/TextAppearance.Material.Notification // 通知内容样式
更多通知的标准样式和布局,可参考源码frameworks/base/core/res/res/layout
路径下的通知模版如:
Android 5.0之前:
notification_template_base.xml
notification_template_big_base.xml
notification_template_big_picture.xml
notification_template_big_text.xml
Android 5.0 及更高版本:
notification_template_material_base.xml
notification_template_material_big_base.xml
notification_template_material_big_picture.xml
notification_template_part_chronometer.xml
notification_template_progressbar.xml
等等。
2.
请注意,通知的背景颜色可能会因设备和版本而异。因此,您应始终在自定义布局中应用支持库样式,例如对文本使用 TextAppearance_Compat_Notification
,对标题使用 TextAppearance_Compat_Notification_Title
。这些样式会适应颜色的变化,因此不会出现黑色文本采用黑色背景或白色文本采用白色背景的情况。
// 标题
<TextView
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_weight="1"
android:text="@string/notification_title"
android:id="@+id/notification_title"
style="@style/TextAppearance.Compat.Notification.Title" />
// 内容
style="@style/TextAppearance.Compat.Notification.Info"