无法将图标添加到操作栏
Unable to add icons to action bar
我最近开始了一个新项目并创建了一个自定义操作栏,但由于某种原因它没有添加图标,它们会出现在溢出部分而不是实际栏上! :(,真的很抱歉,如果这看起来很简单,我才刚刚开始学习 android,我会 post 下面是我的代码。
menu_main.xml
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context=".MainActivity">
<item android:id="@+id/maps"
android:icon="@drawable/ic_action_map"
android:title= "@string/maps"
app:showAsAction="ifRoom"
android:orderInCategory="100"/>
<item android:id="@+id/action_settings"
android:title="@string/action_settings"
android:orderInCategory="100"
app:showAsAction="never" />
我主要方法的一部分
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu items for use in the action bar
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu_main, menu);
return super.onCreateOptionsMenu(menu);
}
提前致谢
编辑:我也在使用 android studio
edit2:这是我的清单文件。
<?xml version="1.0" encoding="utf-8"?>
<application
android:allowBackup="true"
android:icon="@drawable/ic_maps"
android:label="@string/app_name"
android:theme="@style/AppTheme"
>
<activity
android:name=".MainActivity"
android:label="SIX REP MAX" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".Chest"
android:parentActivityName=".MainActivity">
</activity>
<activity android:name=".Back"
android:parentActivityName=".MainActivity">
</activity>
<activity android:name=".Biceps"
android:parentActivityName=".MainActivity">
</activity>
<activity android:name=".Triceps"
android:parentActivityName=".MainActivity">
</activity>
<activity android:name=".Shoulders"
android:parentActivityName=".MainActivity">
</activity>
<activity android:name=".Legs"
android:parentActivityName=".MainActivity">
</activity>
</application>
编辑 3:这是我的自定义操作栏
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="@android:style/Theme.Holo.Light">
<item name="android:actionBarStyle">@style/MyActionBar</item>
</style>
<style name="MyActionBar" parent="@android:style/Widget.Holo.Light.ActionBar">
<item name="android:background">#0099FF</item>
<item name="android:titleTextStyle">@style/MyTheme.ActionBar.TitleTextStyle</item>
</style>
<style name="MyTheme.ActionBar.TitleTextStyle" parent="@android:style/Widget.Holo.Light.ActionBar">
<item name="android:textColor">#ffffff</item>
<item name="android:textSize">24sp</item>
</style>
对所有菜单项执行此操作:
app:showAsAction="always"
并将此添加到您的 Activity
:
@Override
public boolean onPrepareOptionsMenu (Menu menu) {
// This will hide the 3-dots menu
return false;
}
试试这个。这会起作用。
这是您应该使用的代码,仔细查看 onCreateOptionsMenu
中的 return
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getSupportMenuInflater();
inflater.inflate(R.menu.some_menu_xml, menu);
//return true is important here
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.maps:
//Do Something
return true;
case android.R.id.home:
//Do Something else
return true;
}
return super.onOptionsItemSelected(item);
}
试试下面的代码:
<item android:id="@+id/maps"
android:icon="@drawable/ic_action_map"
android:title= "@string/maps"
app:showAsAction="always"
android:orderInCategory="100"/>
<item android:id="@+id/action_settings"
android:title="@string/action_settings"
android:orderInCategory="100"
app:showAsAction="always" />
可能您的图像不适合操作栏。所以当你尝试
app:showAsAction="ifRoom"
放错地方了。所以不要总是使用 ifRoom put。否则尝试调整图像大小以适合您的操作栏
您的代码似乎没问题,但请尝试删除
xmlns:tools="http://schemas.android.com/tools"
tools:context=".MainActivity"
来自 <menu>
标签并删除
android:orderInCategory="100"
来自 <item android:id="@+id/maps"
我最近开始了一个新项目并创建了一个自定义操作栏,但由于某种原因它没有添加图标,它们会出现在溢出部分而不是实际栏上! :(,真的很抱歉,如果这看起来很简单,我才刚刚开始学习 android,我会 post 下面是我的代码。
menu_main.xml
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
tools:context=".MainActivity">
<item android:id="@+id/maps"
android:icon="@drawable/ic_action_map"
android:title= "@string/maps"
app:showAsAction="ifRoom"
android:orderInCategory="100"/>
<item android:id="@+id/action_settings"
android:title="@string/action_settings"
android:orderInCategory="100"
app:showAsAction="never" />
我主要方法的一部分
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu items for use in the action bar
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.menu_main, menu);
return super.onCreateOptionsMenu(menu);
}
提前致谢
编辑:我也在使用 android studio
edit2:这是我的清单文件。
<?xml version="1.0" encoding="utf-8"?>
<application
android:allowBackup="true"
android:icon="@drawable/ic_maps"
android:label="@string/app_name"
android:theme="@style/AppTheme"
>
<activity
android:name=".MainActivity"
android:label="SIX REP MAX" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".Chest"
android:parentActivityName=".MainActivity">
</activity>
<activity android:name=".Back"
android:parentActivityName=".MainActivity">
</activity>
<activity android:name=".Biceps"
android:parentActivityName=".MainActivity">
</activity>
<activity android:name=".Triceps"
android:parentActivityName=".MainActivity">
</activity>
<activity android:name=".Shoulders"
android:parentActivityName=".MainActivity">
</activity>
<activity android:name=".Legs"
android:parentActivityName=".MainActivity">
</activity>
</application>
编辑 3:这是我的自定义操作栏
<resources>
<!-- Base application theme. -->
<style name="AppTheme" parent="@android:style/Theme.Holo.Light">
<item name="android:actionBarStyle">@style/MyActionBar</item>
</style>
<style name="MyActionBar" parent="@android:style/Widget.Holo.Light.ActionBar">
<item name="android:background">#0099FF</item>
<item name="android:titleTextStyle">@style/MyTheme.ActionBar.TitleTextStyle</item>
</style>
<style name="MyTheme.ActionBar.TitleTextStyle" parent="@android:style/Widget.Holo.Light.ActionBar">
<item name="android:textColor">#ffffff</item>
<item name="android:textSize">24sp</item>
</style>
对所有菜单项执行此操作:
app:showAsAction="always"
并将此添加到您的 Activity
:
@Override
public boolean onPrepareOptionsMenu (Menu menu) {
// This will hide the 3-dots menu
return false;
}
试试这个。这会起作用。
这是您应该使用的代码,仔细查看 onCreateOptionsMenu
中的 return @Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getSupportMenuInflater();
inflater.inflate(R.menu.some_menu_xml, menu);
//return true is important here
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.maps:
//Do Something
return true;
case android.R.id.home:
//Do Something else
return true;
}
return super.onOptionsItemSelected(item);
}
试试下面的代码:
<item android:id="@+id/maps"
android:icon="@drawable/ic_action_map"
android:title= "@string/maps"
app:showAsAction="always"
android:orderInCategory="100"/>
<item android:id="@+id/action_settings"
android:title="@string/action_settings"
android:orderInCategory="100"
app:showAsAction="always" />
可能您的图像不适合操作栏。所以当你尝试
app:showAsAction="ifRoom"
放错地方了。所以不要总是使用 ifRoom put。否则尝试调整图像大小以适合您的操作栏
您的代码似乎没问题,但请尝试删除
xmlns:tools="http://schemas.android.com/tools"
tools:context=".MainActivity"
来自 <menu>
标签并删除
android:orderInCategory="100"
来自 <item android:id="@+id/maps"