【问题标题】:Overflow Menu doesn't show溢出菜单不显示
【发布时间】:2017-11-20 16:18:02
【问题描述】:

我的应用有问题...溢出菜单不可见!我可以物理点击手机的右上角并显示菜单项,但三个点不显示。

这是我的 xml:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    tools:context="com.android.example.MainActivity">

    <item
        android:orderInCategory="1"
        android:id="@+id/ic_home"
        android:title="Home"
        android:icon="@drawable/ic_home"
        app:showAsAction="withText"
        />

    <item
        android:orderInCategory="2"
        android:id="@+id/ic_chat"
        android:title="Forum"
        android:icon="@drawable/ic_chat"
        app:showAsAction="withText"
        />

    <item
        android:orderInCategory="3"
        android:id="@+id/ic_videos"
        android:icon="@drawable/ic_videos"
        android:title="Videos"
        app:showAsAction="withText"
        />

    <item
        android:orderInCategory="4"
        android:icon="@drawable/ic_timeline"
        android:id="@+id/ic_timeline"
        android:title="Timeline"
        app:showAsAction="withText"
        />

    <item
        android:icon="@drawable/ic_phone"
        android:id="@+id/ic_call"
        android:orderInCategory="5"
        android:title="Call"
        app:showAsAction="withText"
        />   

</menu>

Java 代码:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.menu_main, menu);
    return true;
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    // Handle action bar item clicks here. The action bar will
    // automatically handle clicks on the Home/Up button, so long
    // as you specify a parent activity in AndroidManifest.xml.
    int id = item.getItemId();

    return super.onOptionsItemSelected(item);
}

我在 StackOverflow 上尝试过其他解决方案,但它们似乎都不起作用。我尝试在 2 部手机上运行该应用程序,均使用 Android 版本 > 4.4。

更新: 我尝试向应用程序添加导航抽屉。同样,当我点击抽屉按钮应该在的一侧时,菜单会显示,但按钮不可见......

更新 2: 我尝试在 style.xml 中更改我的主题设置。当我将 windowActionBar 设置为 true 而不是 false 并将 windowNoTitle 设置为 false 而不是 true 时,抽屉和溢出菜单都会出现。但是,我的工具栏显示在操作栏下方like this

如何将菜单按钮添加到实际的(白色)工具栏?

提前致谢。

【问题讨论】:

    标签: java android xml android-actionbar overflow-menu


    【解决方案1】:

    你设置toolbar:

    Toolbar myToolbar = (Toolbar) findViewById(R.id.my_toolbar);
    setSupportActionBar(myToolbar);
    

    Check out this answer for full explanation.

    【讨论】:

    • 是的...在 onCreate 方法中。您建议的解决方案所说的所有内容都已实施。
    【解决方案2】:

    移除 onCreateOptionsMenu 和 onOptionsItemSelected 并像这样使用它

     Toolbar toolbar=(Toolbar) findViewById(R.id.toolbar);
        toolbar.inflateMenu(R.menu.main_menu);
        toolbar.setOnMenuItemClickListener(new Toolbar.OnMenuItemClickListener() {
            @Override 
            public boolean onMenuItemClick(MenuItem item) {
                return false;
            }
        });
    

    或者如果你在frgment而不是在活动中,那么你必须在onCreateView中添加这行代码

             setHasOptionsMenu(true);
    

    【讨论】:

    • 感谢您的快速回答!但这没有用。在我这样做之后,我什至无法打开菜单(如果我在菜单位置触摸屏幕之前,它会打开)
    • 您必须删除 setSuportAcationBar(toolbar) 行才能使其工作
    • 不行还是不行。现在菜单打开,但点不可见。
    【解决方案3】:

    好的,我找到了答案:

    我又恢复了默认操作栏,然后为自定义操作栏创建了布局资源文件。

    我在自定义操作栏文件中添加了所需栏的设计/规格,然后将操作栏设置为自定义操作栏文件。

    一切顺利!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-11-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多