Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/215.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
你能在Android ICS中强制显示三点下拉选项菜单吗?_Android_Drop Down Menu_Android Actionbar_Android 4.0 Ice Cream Sandwich_Popupmenu - Fatal编程技术网

你能在Android ICS中强制显示三点下拉选项菜单吗?

你能在Android ICS中强制显示三点下拉选项菜单吗?,android,drop-down-menu,android-actionbar,android-4.0-ice-cream-sandwich,popupmenu,Android,Drop Down Menu,Android Actionbar,Android 4.0 Ice Cream Sandwich,Popupmenu,我试图找到一种方法来强制显示Android ICS中的三点下拉菜单。我知道它应该在设置/菜单缺少硬按钮时显示 以下是我所指内容的屏幕截图: 谢谢 您可以使用菜单XML中的android:showAsAction=“never”强制项目出现在溢出菜单中。但是,如果您的设备具有硬件菜单键,则不会显示溢出。您必须对单击的项目进行一些伪造,然后从自定义上下文菜单或其他内容中删除 我在我的应用程序中也遇到了这种情况,尽管我更愿意强制它,但最好还是按照预期的平台行为,将其保留在菜单按钮上。因此,事实证明它

我试图找到一种方法来强制显示Android ICS中的三点下拉菜单。我知道它应该在设置/菜单缺少硬按钮时显示

以下是我所指内容的屏幕截图:


谢谢

您可以使用菜单XML中的
android:showAsAction=“never”
强制项目出现在溢出菜单中。但是,如果您的设备具有硬件菜单键,则不会显示溢出。您必须对单击的项目进行一些伪造,然后从自定义上下文菜单或其他内容中删除


我在我的应用程序中也遇到了这种情况,尽管我更愿意强制它,但最好还是按照预期的平台行为,将其保留在菜单按钮上。

因此,事实证明它非常简单,我最近在我的应用程序中实现了它

需要在溢出菜单中显示的项目,将它们嵌套在一个菜单项下,如下所示:

<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); }

我们只是想把一个弹出菜单放在同一个样式,但如果溢出菜单出现是因为没有硬件菜单键,这将是多余的。我同意你的观点,我们决定坚持惯例。似乎与操作栏有太多的不一致。在我看来,选项菜单要一致得多。