与 Android 中的 Toolbar 具有相同主题的 ActionMode

问题描述

在 Android 中,有没有办法让 ActionMode 具有与普通 Toolbar 相同的外观?目前我的 ActionMode 看起来与工具栏不同,因为背景稍微亮一些(至少使用 Theme.AppCompat.NoActionBar),MenuItems 是全黑/白色(取决于主题)而不是 colorControlnormal(我设置最烦人的是,在我似乎无法摆脱的 ActionMode 下有一个下划线。相反,我试图使 ActionMode 与工具栏无法区分。

工具栏(也是 ActionMode 的样子):

Toolbar

ActionMode 目前的样子:

ActionMode

任何帮助将不胜感激!

解决方法

  1. 用于更改 ActionMode 的背景颜色并移除底线。您可以使用 actionModeStylebackground 设置为您想要的颜色。
  2. 要更改图标颜色,您可以在 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>