Android选项菜单布局



当按下菜单按钮时,我想使菜单选项显示如下

--------------
- 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

最新更新