问题描述
在 Android 中,有没有办法让 ActionMode 具有与普通 Toolbar 相同的外观?目前我的 ActionMode 看起来与工具栏不同,因为背景稍微亮一些(至少使用 Theme.AppCompat.NoActionBar
),MenuItems 是全黑/白色(取决于主题)而不是 colorControlnormal
(我设置最烦人的是,在我似乎无法摆脱的 ActionMode 下有一个下划线。相反,我试图使 ActionMode 与工具栏无法区分。
工具栏(也是 ActionMode 的样子):
ActionMode 目前的样子:
任何帮助将不胜感激!
解决方法
- 用于更改
ActionMode
的背景颜色并移除底线。您可以使用actionModeStyle
将background
设置为您想要的颜色。 - 要更改图标颜色,您可以在
colorControlNormal
内设置actionBarTheme
。
所以你的主题应该是这样的:
<style name="Theme.AppTheme" parent="Theme.MaterialComponents.DayNight.DarkActionBar">
<!-- Customize your theme here. -->
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<!--add this-->
<item name="actionModeStyle">@style/ActionModeStyle</item>
<item name="actionBarTheme">@style/MyActionBarTheme</item>
</style>
<style name="MyActionBarTheme" parent="ThemeOverlay.AppCompat.Dark.ActionBar">
//replace with your own desired color
<item name="colorControlNormal">#a00</item>
</style>
<style name="ActionModeStyle" parent="@style/Widget.AppCompat.ActionMode">
//replace with your own desired color
<item name="background">@color/colorPrimary</item>
<item name="titleTextStyle">@style/ActionModeTitleTextStyle</item>
</style>
<style name="ActionModeTitleTextStyle" parent="@style/TextAppearance.AppCompat.Widget.ActionMode.Title">
//replace with your own desired color
<item name="android:textColor">#a00</item>
</style>