如何删除操作菜单项的背景?

时间:2015-04-04 17:52:18

标签: android

我有以下操作菜单:

enter image description here

正如您所看到的,所有这些操作菜单项都有 背景。我猜它和父母一样背景。

如何删除此背景?

我的style.xml如下:

<resources xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools">

<style name="AppTheme" parent="AppTheme.Base"></style>

<style name="AppTheme.Base" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="colorPrimaryDark">@color/primaryColorDark</item>
    <item name="colorPrimary">@color/primaryColor</item>
    <item name="colorAccent">@color/accentColor</item>
    <item name="android:textColorPrimary">@color/textcolorsecundary</item>
    <item name="android:textColorSecondary">@color/textcolorsecundary</item>
    <item name="android:actionModeBackground">@color/primaryColor</item>
    <item name="android:windowActionModeOverlay">true</item>
    <item name="android:activatedBackgroundIndicator">@drawable/custom_background_listview_item</item>
</style>

<style name="AppTheme.Toolbar" parent="ThemeOverlay.AppCompat.Dark.ActionBar">
    <item name="android:textColorPrimary">@color/textcolorsecundary</item>
    <item name="actionMenuTextColor">@color/textcolorsecundary</item>
    <item name="android:textColorSecondary">@color/textcolorsecundary</item>
    <item name="android:showDividers">beginning</item>
    <item name="android:divider">@color/primaryColorDark</item>
    <item name="android:background">@drawable/custom_background_blue</item>
</style>

<style name="AppTheme.Toolbar.PopupMenu" parent="ThemeOverlay.AppCompat.Dark">
    <item name="android:popupBackground">@color/primaryColor</item>
</style>

</resources>

我的工具栏:

<?xml version="1.0" encoding="utf-8"?>
<android.support.v7.widget.Toolbar xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/toolbar"
android:layout_width="match_parent"
android:layout_height="?android:attr/actionBarSize"
android:elevation="2dp"
android:focusable="false"
app:popupTheme="@style/AppTheme.Toolbar.PopupMenu"
app:theme="@style/AppTheme.Toolbar" >

<TextView
    android:id="@+id/toolbar_title"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_gravity="start"
    android:background="@null"
    android:textColor="@color/white"
    android:textSize="20sp"
    android:textStyle="bold" />

</android.support.v7.widget.Toolbar>

2 个答案:

答案 0 :(得分:2)

以下行是问题

<style name="AppTheme.Toolbar" parent="ThemeOverlay.AppCompat.Dark.ActionBar">
    <item name="android:background">@drawable/custom_background_blue</item>
</style>

由于以上内容不是作为样式而是作为主题应用(可能是通过popupTheme元素上的Toolbar属性),因此工具栏中的所有小部件都会继承这些设置。你想要的是android:popupBackground而不是android:background

编辑:OP表示以上是不够的。对于样式工具栏的弹出菜单(不是工具栏本身),请使用app:popupTheme属性。主题将与此类似:

<style name="AppTheme.Toolbar.PopupMenu" parent="ThemeOverlay.AppCompat.Dark">
    <item name="android:popupBackground">@drawable/custom_background_blue</item>
</style>

答案 1 :(得分:0)

您在style.xml中显式设置动作背景颜色与主要颜色相同。

<item name="android:actionModeBackground">@color/primaryColor</item>

尝试从XML中删除它或将其更改为适合您的UI的颜色,它应该可以正常工作。如果您没有选择为android:actionModeBackground手动指定颜色,则可以从父主题(在您的情况下为Theme.AppCompat.Light.NoActionBar)中简单地获取它的默认值。