【问题标题】:How to show overflow menu in action bar如何在操作栏中显示溢出菜单
【发布时间】:2014-11-13 14:35:50
【问题描述】:

我想在操作栏中显示一个溢出菜单,我尝试在我的活动中使用一个菜单,但是当我点击手机上的菜单按钮时,我只得到一个弹出菜单 .有没有办法通过物理按钮强制手机溢出菜单

这是我的菜单文件:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
    <item 
        android:id="@+id/phone"
        android:title="phone"
        android:icon="@drawable/phone"
        android:showAsAction="ifRoom"/>

    <item 
        android:id="@+id/computer"
        android:title="computer"
        android:icon="@drawable/computer"
        android:showAsAction="ifRoom"/>

    <item 
        android:id="@+id/gamepad"
        android:title="gamepad"
        android:icon="@drawable/gamepad"
        android:showAsAction="ifRoom"/>


</menu>

【问题讨论】:

标签: android android-menu overflow-menu


【解决方案1】:

您需要进入菜单 xml 文件并确保它有

 android:showAsAction="ifRoom"

对于你使用的图标

android:icon="@drawable/yourIcon"

编辑:为确保您使用的是正确的菜单 xml,请检查您正在运行的活动类并查找

onCreateOptionsMenu(Menu menu)

一旦你发现,检查该行

getMenuInflater().inflate(R.menu.{0}, menu);

匹配您的菜单 xml 文件,其中 {0} = 您的 xml 文件名

【讨论】:

  • 这是我的 menu.xml 文件。它没有任何区别。输出是相同的。我没有为三个点创建图标。我只是使用 getMenuInFlater()。跨度>
  • 如果你设置了showAsAction,不管你是否有一个图标,它至少应该以文本形式显示其中一个。您是否尝试过卸载该应用程序并重新安装它?还要确保将其添加到正确的菜单 XML 中,除非您将代码更改为共享一个通用菜单 XML,否则每个活动可能会有不同的菜单 XML