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