你能在Android ICS中强制显示三点下拉选项菜单吗?
我试图找到一种方法来强制显示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”强制项目出现在溢出菜单中。但是,如果您的设备具有硬件菜单键,则不会显示溢出。您必须对单击的项目进行一些伪造,然后从自定义上下文菜单或其他内容中删除 我在我的应用程序中也遇到了这种情况,尽管我更愿意强制它,但最好还是按照预期的平台行为,将其保留在菜单按钮上。因此,事实证明它
谢谢 您可以使用菜单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); }
我们只是想把一个弹出菜单放在同一个样式,但如果溢出菜单出现是因为没有硬件菜单键,这将是多余的。我同意你的观点,我们决定坚持惯例。似乎与操作栏有太多的不一致。在我看来,选项菜单要一致得多。