如何使溢出弹出菜单避免妨碍操作栏?

and*_*per 9 android android-actionbar material-design android-5.0-lollipop android-toolbar

背景

我的应用程序上,当我更新到新的支持库并尝试使用Lollipop时,我注意到一个奇怪的问题:当单击操作栏的溢出按钮(甚至是新的工具栏类)时会显示弹出窗口操作栏顶部的菜单,隐藏其他操作项,如下:

在此输入图像描述

这里隐藏的操作项是卸载和共享.

问题

我试图通过浮动溢出菜单的样式来避免这个问题,但没有任何帮助.

不仅如此,但似乎这是一种故意的行为,但在许多谷歌的应用程序,更新有材质的设计,这种行为不成立,因为我已经报道在这里.

我试过的

我试过在我使用的主题中创建它.实际上我的主题是非常不同的,它的父主题是"Theme.AppCompat.Light.NoActionBar"(我使用工具栏作为actionBar),但是这个片段也有这个问题,所以我认为如果一个将被解决,另一个将太.

无论如何,这里是片段:

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

    <style name="AppBaseTheme" parent="Theme.AppCompat.Light"></style>

    <style name="AppTheme" parent="AppBaseTheme">
        <item name="android:actionOverflowMenuStyle" tools:targetApi="21">@style/OverflowMenu</item>
    </style>

    <style name="OverflowMenu" parent="@android:style/Widget.Material.PopupMenu.Overflow" tools:targetApi="21">
        <item name="android:overlapAnchor">false</item>
        <item name="android:dropDownVerticalOffset">50dip</item>
    </style>

</resources>
Run Code Online (Sandbox Code Playgroud)

两个属性都没有改变任何东西.

我也试过在支持库中查找它是如何工作的,但是找不到它.

这个问题

如何设置溢出操作项的弹出菜单以避免隐藏其他项?

ala*_*anv 20

如果您正在使用ActionBarActivity,则需要覆盖溢出菜单样式的appcompat版本以及弹出属性的appcompat版本(如果适用).

<resources>
    <style name="AppBaseTheme" parent="Theme.AppCompat.Light" />

    <style name="AppTheme" parent="AppBaseTheme">
        <item name="actionOverflowMenuStyle">@style/OverflowMenu</item>
    </style>

    <style name="OverflowMenu" parent="Widget.AppCompat.PopupMenu.Overflow">
        <!-- Required for pre-Lollipop. -->
        <item name="overlapAnchor">false</item>

        <!-- Required for Lollipop. -->
        <item name="android:overlapAnchor">false</item>
    </style>

</resources>
Run Code Online (Sandbox Code Playgroud)