操作栏中的三点操作溢出菜单?

4
我注意到在我的应用程序中,当我为没有硬件菜单按钮的新设备添加菜单时,它会将三个点添加到操作栏中。然而,我在一些应用程序中看到,你实际上可以将这些三个点移动到底部(在软件导航中)。如何实现这一点?如果使用actionbarsherlock是否有所不同,请指出。

这个描述有点模糊,你能详细说明一下你正在构建什么应用程序菜单吗? - Akyl
菜单按钮。我会附上一张图片。 - HAxxor
你是指像这样的ActionBars吗(http://developer.android.com/design/media/action_bar_pattern_rotation.png),特别是左前方的那个? - Sam
我已经编辑了我的描述并添加了一张图片。 - HAxxor
所以,你想制作这个菜单栏吗?这是预先构建在安卓手机中的一些我知道有点不同,或者你想获得一个特定的结果。 - Akyl
现在我的Google Nexus(没有硬件菜单按钮)上的三个点在操作栏中。我想让它显示在软件按钮中,就像上面的图片一样,而不是在菜单中显示三个点。我该如何设置? - HAxxor
2个回答

7
您可以通过将targetSdk设置为14以下来实现此目的。我说“实现”,因为这是不好的做法。对于具有软件键的设备,只要您使用带有ActionBar的主题,它就会在ActionBar上显示菜单。如果您使用没有ActionBar(非Holo)的主题,则会显示三个点。
三个点很讨厌。 三个点很邪恶。 必须消灭三个点。
简而言之,我建议避免使用它。 :)
另请参阅:Menu Button of Shame

谢谢。如果我将目标SDK设置在14以下,很多东西都会出问题。唉...这太糟糕了。看来我不能走这条路了。哈哈。感谢您的回答。 - HAxxor
没问题。 :) 为什么糟糕?只是好奇,你的目标是什么?为什么想要它们在底部? - Kevin Coppock
老实说,我猜他这样做是为了某个游戏,因为3个按钮看起来很分散注意力。 - Akyl
在我的应用程序上看起来有点尴尬,特别是因为我还有另一个图标。所以加上这三个点只会让它看起来非常丑陋。 - HAxxor
@Akyl 这不是为了游戏,只是我正在制作的一个普通应用程序。 - HAxxor
显示剩余2条评论

1
所以,事实证明这很简单,我最近在我的应用程序中实现了它。
需要显示在溢出菜单中的项目,请将它们嵌套在一个菜单项下面,如下所示:
<menu xmlns:android="http://schemas.android.com/apk/res/android" >

    <item
        android:id="@+id/empty"
        android:orderInCategory="101"
        android:showAsAction="always"
        android:icon="@drawable/ic_action_overflow">

        <menu>        

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

            <item
                android:id="@+id/action_share"
                android:orderInCategory="97"
                android:showAsAction="never"
                android:title="@string/menu_share"
                android:icon="@drawable/ic_action_share"/>

            <item
                android:id="@+id/action_rate"
                android:orderInCategory="98"
                android:showAsAction="never"
                android:title="@string/menu_rate"
                android:icon="@drawable/ic_action_important"/>

            <item
                android:id="@+id/action_feedback"
                android:orderInCategory="99"
                android:showAsAction="never"
                android:title="@string/menu_feedback"
                android:icon="@drawable/ic_action_edit"/>

            </menu>         
        </item>
</menu>

现在,请按以下方式编辑主活动文件:

package com.example.test;
//all your import statements go here

Menu mainMenu=null;

@Override
protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState); }

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


//Menu press should open 3 dot menu
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode==KeyEvent.KEYCODE_MENU) {
        mainMenu.performIdentifierAction(R.id.empty, 0);
        return true; }
    return super.onKeyDown(keyCode, event); }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接