Android选项菜单布局

时间:2013-11-23 10:48:07

标签: android layout cordova menu optionmenu

我想在按下菜单按钮

时使用以下显示进行菜单选项
--------------
- 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;
    }
}

THK

3 个答案:

答案 0 :(得分:0)

您不应该在应用中使用“已弃用”的“菜单”按钮。

这是不方便,丑陋和烦人的。 (互联网上有很多文章可以解释这一点)

相反,我建议你使用Action Bar。 这是一个教程http://www.androidhive.info/2013/11/android-working-with-action-bar/

答案 1 :(得分:0)

我知道这篇文章相当陈旧,但我想如果有其他人遇到这个问题我应该添加到user2953680的回复中。

我认为这是一个很好的区分,几乎不值得。溢出按钮确实取代了菜单按钮,但您可以像使用菜单按钮一样访问它。

如果您阅读Android的文档,他们会在操作栏中使用图标来查看与应用当前上下文相关的重要操作,而其他所有内容(如帮助项或设置项)都应放在溢出菜单中。因此,用户仍然有一个菜单。

从菜单中排除操作项

android:showAsAction="never"

在菜单中包含操作

android:showAsAction="ifRoom"

http://developer.android.com/guide/topics/ui/actionbar.html

现在,根据Android版本的不同,您的菜单会与最近的Android版本的菜单显示不同 - 让我花费很多时间来解决这个问题。你是否可以改变他们的布局,这就是我认为原始问题背后的目的,是我不确定的。

答案 2 :(得分:-1)

我不知道你为什么要通过这些:

android:orderInCategory="100"
android:showAsAction="withText"
android:menuCategory="container"

查看本教程:

https://www.tutlane.com/tutorial/android/android-options-menu-with-examples