Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/226.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 将项目添加到“中”;“溢出菜单”;而不是操作栏_Android_Android Actionbar_Android Menu - Fatal编程技术网

Android 将项目添加到“中”;“溢出菜单”;而不是操作栏

Android 将项目添加到“中”;“溢出菜单”;而不是操作栏,android,android-actionbar,android-menu,Android,Android Actionbar,Android Menu,我一直在尝试从一本书中实现一个小应用程序,其中包括向操作栏添加项目。出现的问题是,项目被添加到溢出菜单的列表中(右上角有三个点的图标),而不是添加到主操作栏上(应该添加的位置) 这是主文件的菜单- <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" tools:context = ".MainActivity" xmln

我一直在尝试从一本书中实现一个小应用程序,其中包括向操作栏添加项目。出现的问题是,项目被添加到溢出菜单的列表中(右上角有三个点的图标),而不是添加到主操作栏上(应该添加的位置)

这是主文件的菜单-

<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:context = ".MainActivity"
xmlns:app="http://schemas.android.com/apk/res-auto">

<item
    android:id="@+id/action_settings"
    android:title="@string/action_settings"
    android:orderInCategory="100"
    app:showAsAction="never"
    />

<item
    android:id="@+id/action_create_order"
    android:title="@string/action_create_order"
    android:icon = "@drawable/create_order"
    android:orderInCategory="1"
    app:showAsAction="ifRoom"
    />
我尝试将两者的showAsAction设置为“始终”,但问题仍然存在


(emulator是bluestacks)

根据屏幕大小和操作栏标题,可能没有足够的空间显示两个菜单选项。即使您将其设置为“ifRoom”(建议使用“always”)而不是“ifRoom”,如果没有空间,菜单项将显示在溢出菜单项中

您可以通过以下方式来验证这一点:检查您的布局在更大屏幕上的外观,为菜单项提供更多可用空间;缩短操作栏标题以腾出更多空间;或者观察水平方向上的菜单项布局以查看问题是否仍然存在

如果这不是问题,请发布一个屏幕截图,说明当您将两个项目都设置为“ifRoom”时,您的操作栏是如何显示的,并发布您如何创建和充气选项菜单的代码

请记住,菜单项布局将根据设备的不同而有所不同。因为屏幕更大的设备可以在主操作栏中显示更多的菜单项。
希望这有帮助

您的操作栏中是否有空间放置菜单项?如果您没有空间,即使是“始终”也无法修复。@user3331142是的,有……ActionBar只有应用程序名称和应用程序图标。我上传了截图,你可以看看。这很奇怪。我把你的代码用在我正在使用的一个工作应用程序中,并显示了图标。这可能与模拟器有关吗?我正在使用Bluestack。我将使用另一个模拟器来测试它。Genymotion为个人使用提供免费模拟。或者,Android Studio模拟器现在已经相当不错了。当然,如果你能得到一个真正的Android设备,那将是最有帮助的。谢谢你的回答。我发布了截图和通货膨胀代码。你可以检查一下。你在手机上或Android Studio模拟器上测试过吗?由于您的类扩展了活动,请尝试使用android:showAsAction而不是app:showAsAction.Oh!这就解决了!我读了更多的书,了解到在使用Activity时,它应该是app:而不是android:但应用程序仍然会给出这个错误(即使它运行得很好)-“应该使用app:showaAction和appcompat库,并使用xmlns:app=”“less…(Ctrl+F1)当使用appcompat库时,菜单资源应该引用app:namespace中的showAsAction,而不是android:namespace。同样,当不使用appcompat库时,您应该使用android:showAsAction属性。“很高兴它工作了!”!如果你能接受帮助你的答案,那就太好了。哦,是的,我的错。我是新来的:)
package com.newboston.bitsandpizzas;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.content.Intent;

public class MainActivity extends Activity {

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch(item.getItemId()){
        case R.id.action_create_order:
            Intent intent = new Intent(this,OrderActivity.class);
            startActivity(intent);
            return true;
        case R.id.action_settings:
            return true;
        default:
            return super.onOptionsItemSelected(item);
    }
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.menu_main,menu);
    return super.onCreateOptionsMenu(menu);
}

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
}
}