【问题标题】:Toolbar options menu background color工具栏选项菜单背景颜色
【发布时间】:2015-05-19 16:24:06
【问题描述】:

我正在使用 android 的工具栏。 我只想更改溢出菜单的背景颜色。但它并没有改变。

样式 xml

<style name="MyDarkToolbarStyle" parent="Widget.AppCompat.Toolbar">
    <item name="popupTheme">@style/PopupMenuStyle</item>
    <item name="theme">@style/ThemeOverlay.AppCompat.Dark.ActionBar</item>
</style>

<style name="PopupMenuStyle" parent="android:Widget.Holo.Light.PopupMenu">
    <item name="android:popupBackground">@android:color/white</item>
</style>

工具栏 XML

    <android.support.v7.widget.Toolbar
    android:id="@+id/tool_bar"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@color/ColorPrimary"
    android:elevation="2dp"
    android:theme="@style/MyDarkToolbarStyle" />

【问题讨论】:

    标签: android menu popup toolbar android-optionsmenu


    【解决方案1】:

    要更改工具栏选项菜单颜色,请将其添加到您的工具栏元素

    app:popupTheme="@style/MyDarkToolbarStyle"
    

    然后在您的styles.xml 中定义弹出菜单样式

    <style name="MyDarkToolbarStyle" parent="ThemeOverlay.AppCompat.Light">
        <item name="android:colorBackground">@color/mtrl_white_100</item>
        <item name="android:textColor">@color/mtrl_light_blue_900</item>
    </style>
    

    请注意,您需要使用colorBackground 不是 background。后者适用于所有内容(菜单本身和每个菜单项),前者仅适用于弹出菜单。

    【讨论】:

    • 我认为 popupTheme 属性仅适用于 API 21 及更高版本
    • 这对我不起作用,但this 起作用了。
    • 如果我想要带边框的背景怎么办?
    • @CapitanNerd 不,使用支持库...它是app:popupTheme,而不是android:popupTheme
    • 对我来说,android:colorBackground 不起作用,但 android:background 起作用
    【解决方案2】:

    编辑:

    如果您只想要一个白色的溢出弹出菜单,请执行此操作

    <android.support.v7.widget.Toolbar
        android:id="@+id/tool_bar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/ColorPrimary"
        android:elevation="2dp"
        app:theme="@style/MyDarkToolbarStyle"
        app:popupTheme="@style/ThemeOverlay.AppCompat.Light"" />
    

    并删除您的样式 xml 中多余的 popupTheme

    <style name="MyDarkToolbarStyle" parent="Widget.AppCompat.Toolbar">
         <item name="theme">@style/ThemeOverlay.AppCompat.Dark.ActionBar</item>
    </style>
    

    您还应该将其包含在您的顶级(父)布局中

    xmlns:app="http://schemas.android.com/apk/res-auto"
    

    【讨论】:

    • 不,工具栏来自支持库并且向后兼容
    【解决方案3】:

    最简单的方法

    如果您只想要一个白色的溢出弹出菜单,请执行以下操作:

    <android.support.v7.widget.Toolbar
        android:id="@+id/tool_bar"
        android:layout_width="match_parent"
        android:layout_height="?attr/actionBarSize"
        android:background="@color/ColorPrimary"
        android:elevation="2dp"
        app:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
        app:popupTheme="@style/ThemeOverlay.AppCompat.Light" />
    

    另外,看看android:layout_height 属性的值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-04-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多