Android 图标未显示在操作栏中

Android 图标未显示在操作栏中,android,android-layout,android-menu,Android,Android Layout,Android Menu,我正试图在我的android应用程序中设置一个带有图标的操作栏。无论我做什么,我只会看到带有下拉菜单的溢出图标,而我希望在操作栏菜单上看到相邻的主页和注销图标。我已经阅读了SO上的大多数帖子,想找到一个解决方案,但找不到解决方案。有人能帮忙吗 下面是我的代码: AndroidManifest.xml <application android:name=".application.MySampleApplication" android:icon="@drawable/let

我正试图在我的android应用程序中设置一个带有图标的操作栏。无论我做什么,我只会看到带有下拉菜单的溢出图标,而我希望在操作栏菜单上看到相邻的主页和注销图标。我已经阅读了SO上的大多数帖子,想找到一个解决方案,但找不到解决方案。有人能帮忙吗

下面是我的代码:

AndroidManifest.xml

<application
    android:name=".application.MySampleApplication"
    android:icon="@drawable/letter"
    android:label="My Sample"
    android:theme="@android:style/Theme.WithActionBar">
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">
    <item
        android:id="@+id/action_logout"
        android:icon="@drawable/logout"
        android:title="@string/logout"
        android:orderInCategory="0"
        app:showAsAction="always" />
    <item
        android:id="@+id/action_home"
        android:title="@string/gohome"
        android:icon="@drawable/ulogo"
        android:orderInCategory="0"
        app:showAsAction="always" />
</menu>
它现在是如何显示的

我希望它如何显示

MainActivity扩展活动

这意味着您使用的是本机操作栏,而不是appcompat-v7提供的后端口。在这种情况下,将菜单资源中的
app:
前缀替换为
android:
,您的运气会更好

在谷歌上搜索解决方案,看到有人在使用它


这是令人惊讶的。你的问题是我第一次看到有人使用这个主题。我甚至不知道它的存在,直到我查到它作为检查你的问题的一部分。最有可能的情况是,您希望使用更现代的主题。

MainActivity扩展了什么类?为什么要使用
主题。WithActionBar
?Main活动扩展活动。我认为使用“Theme.WithActionBar”是获得预期动作栏的必要条件。我在谷歌上搜索一个解决方案,看到有人在使用它,既然这似乎有道理,我就添加了它。我对Android还比较陌生。@commonware顺便说一句,即使我尝试使用其他主题,这也是同样的行为。我尝试用Android:替换前缀app:,但在menu_main.xml中看到一个错误。我也使用了其他主题,但也没有成功。@Prashanth:“但是在menu_main.xml中看到一个错误”——错误是什么?还有,你确定这是一个错误,而不是一个警告吗?例如,它可能会抱怨您应该使用
app:
。如果你的
依赖项中有
appcompat-v7
,就会出现这种情况,因为Android Studio认为你应该使用操作栏backport。我想我明白你说的了。当我阅读更多关于app:vs android:prefixes的内容时,错误显示我可以使用android:build.gradle中没有appCompat时
依赖项{compile files('libs/jsonic-1.3.0.jar')compile'com.android.support:support-v4:26.+'compile'com.android.support.support:1.0.2}
对不起,我无法在我的系统中格式化代码comments@Prashanth:真正的规则是,如果继承自
AppCompatActivity
,则需要使用菜单资源中的
app:
前缀和基于
theme.AppCompat
的主题。如果您不打算使用
appcompat活动
,请从
依赖项
闭包中删除
编译'com.android.support:appcompat-v7:26.+'
行。
@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.menu_main, menu);
    return super.onCreateOptionsMenu(menu);
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    int id = item.getItemId();
    if (id == R.id.action_logout) {
        logout();
        return true;
    }
    if (id == R.id.action_home) {
        goHome();
        return true;
    }
    return super.onOptionsItemSelected(item);
}