Material3中无法修改ActionMode背景色,该如何解决?
在Material3中修改ActionMode背景色的方案
Material3 不再支持直接使用 actionModeBackground 属性修改ActionMode背景色,需要通过自定义ActionMode样式实现,具体步骤如下:
- 修改主题配置
将原主题中的actionModeBackground属性替换为actionModeStyle,指向自定义的ActionMode样式:
<style name="AppTheme" parent="Theme.Material3.DayNight.NoActionBar"> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/colorAccent</item> <item name="windowActionModeOverlay">false</item> <!-- 替换原actionModeBackground,指定自定义样式 --> <item name="actionModeStyle">@style/CustomActionModeStyle</item> <item name="android:actionModeCloseDrawable">@drawable/ic_baseline_done_tick_24</item> </style>
- 定义自定义ActionMode样式
创建继承自Widget.Material3.ActionMode的样式,在其中设置目标背景色:
<style name="CustomActionModeStyle" parent="Widget.Material3.ActionMode"> <!-- 设置ActionMode背景色 --> <item name="background">@color/action_mode_background</item> <!-- 可选:如需调整标题文字颜色等其他样式,可添加对应属性 --> <!-- <item name="titleTextColor">@color/your_title_color</item> --> </style>
通过以上配置,即可在Material3中成功修改ActionMode的背景色,同时保留Material3的原生样式特性。
内容的提问来源于stack exchange,提问作者user21928976
相关产品推荐
相关产品推荐

