Android - 从ActionBar中删除“更多操作”按钮

时间:2012-06-09 12:41:59

标签: android android-actionbar

我有一个ActionBar应该以自定义方式显示动作按钮。为此,我创建了一个自定义视图并将其附加到ActionBar。

有一点需要注意的是,我使用 menu.xml 资源文件加载选项菜单并将其显示在智能手机上,但不要在平板电脑上显示,而是使用自定义视图。为此,我将xml中的每个菜单项推销为:android:showAsAction="never"

一切看起来都不错,除了仍然保留在ActionBar右侧的一个小东西 - “更多”按钮。

如何删除它?

enter image description here

我试过了:

ActionBar bar = activity.getActionBar();
bar.removeAllTabs();

但“更多”按钮仍然存在。

修改
这是我的menu.xml文件:

<menu xmlns:android="http://schemas.android.com/apk/res/android" >

    <item
        android:id="@+id/menu_username"
        android:icon="@drawable/menu_username"
        android:orderInCategory="0"
        android:showAsAction="never"
        android:title="@string/menu_username">
        <menu>
            <item
                android:id="@+id/menu_logout"
                android:title="@string/menu_logout"/>
        </menu>
    </item>

    <item
        android:id="@+id/menu_settings"
        android:icon="@drawable/menu_settings"
        android:orderInCategory="1"
        android:showAsAction="never"
        android:title="@string/menu_settings"/>

    <item
        android:id="@+id/menu_search"
        android:icon="@drawable/menu_search"
        android:orderInCategory="1"
        android:showAsAction="never"
        android:title="@string/menu_search"/>

</menu>

请注意我仍想在智能手机上对此菜单进行充气,但不想在平板电脑上使用它。

1 个答案:

答案 0 :(得分:2)

设置showAsAction="never"将强制菜单项进入溢出。为什么不登录onCreateOptionsMenu(...)设备是平板电脑,如果它不是给菜单充气?像这样:

public boolean onCreateOptionsMenu(Menu menu) {
    if (getResources().getConfiguration().smallestScreenWidthDp >= 600) {
        //It's a tablet, don't inflate, only create the manual view
        manualMenuCreation();
    } else {
        getMenuInflater().inflate(R.menu.menu, menu);
    }
    return true;
}

不要忘记smallestScreenWidthDp仅适用于3.2或更高版本,因此您必须考虑到这一点。