当按下菜单按钮时,我想使菜单选项显示如下
--------------
- Logout -
--------------
- Profile -
--------------
- Password -
--------------
- Add -
--------------
但是以下设备上的结果
----------------------
- Logout - Profile -
----------------------
- Password - add -
----------------------
如何看起来像顶部的图片,下面的源代码
main.xml
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/action_logout"
android:orderInCategory="100"
android:showAsAction="withText"
android:menuCategory="container"
android:title="@string/action_logout"/>
<item
android:id="@+id/action_password"
android:orderInCategory="100"
android:showAsAction="withText"
android:menuCategory="container"
android:title="@string/action_password"/>
<item
android:id="@+id/action_profile"
android:orderInCategory="100"
android:showAsAction="withText"
android:menuCategory="container"
android:title="@string/action_profile"/>
<item
android:id="@+id/action_sync"
android:orderInCategory="100"
android:showAsAction="withText"
android:menuCategory="container"
android:title="@string/action_add"/>
</menu>
mainactivity.java
package com.gap.androidgap5;
import android.os.Bundle;
import android.util.Log;
import android.view.KeyEvent;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.View;
import org.apache.cordova.*;
public class MainActivity extends DroidGap{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.init();
super.loadUrl(Config.getStartUrl());
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main, menu);
return true;
}
}
厚度
你不应该在你的应用程序中使用菜单按钮——它是"不推荐使用的"。
它既不方便,又丑陋,令人讨厌。(互联网上有很多文章解释了这一点)
相反,我建议您使用Action Bar。这是教程http://www.androidhive.info/2013/11/android-working-with-action-bar/
我知道这篇文章已经很旧了,但我认为如果其他人遇到这个问题,我应该添加到user2953680的回复中。
我认为这是一个细微的区别,几乎不值得做。溢出按钮确实取代了菜单按钮,但您可以像访问菜单按钮一样访问它。
如果你阅读了安卓的文档,他们说,使用操作栏中的图标来执行与应用程序当前上下文相关的重要操作,而其他所有内容,如帮助项目或设置项目,都应该放在溢出菜单中。因此,实际上仍然有一个面向用户的菜单。
从菜单中排除操作项目
android:showAsAction="never"
将操作包括在菜单中
android:showAsAction="ifRoom"
http://developer.android.com/guide/topics/ui/actionbar.html
现在,根据安卓版本的不同,你的菜单将与最近安卓版本上的菜单不同——我花了很长时间才弄清楚。我不确定你是否可以改变他们的布局,这就是我认为最初问题背后的目的。
我不知道你为什么要通过这些:
android:orderInCategory="100"
android:showAsAction="withText"
android:menuCategory="container"
查看本教程:
https://www.tutlane.com/tutorial/android/android-options-menu-with-examples