在my app上,当我更新到新支持库并尝试使用Lollipop时,我发现了一个奇怪的问题:点击操作栏的溢出按钮(或即使是新的Toolbar类)也会在操作栏顶部显示弹出菜单,隐藏其他操作项,如下所示:
此处,隐藏的操作项是卸载和共享。
我试图通过浮动溢出菜单的样式来避免这个问题,但没有任何帮助。
不仅如此,但似乎这是an intentional behavior,但在许多已更新为具有Material设计的Google应用中,此行为并不成立,正如我所报道的那样{{3 }}
我已经尝试在我使用的主题中创建它。实际上我的主题是非常不同的,它的父母是" 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>
这两个属性都没有改变任何东西。
我也尝试过在支持库中查找它的工作原理,但无法找到它。
如何设置溢出操作项的弹出菜单以避免隐藏其他项?
答案 0 :(得分: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>