我的ActionBar有2个操作按钮,当我试图更改ActionBar上的徽标时,它没有显示。我找到了解决方案:在我的Mainactivity类中,我将ActionBarActivity(默认显示)更改为Activity。然后在manifest.xml中我从
更改主题name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
到
name="AppTheme" parent="android:Theme.Holo.Light.DarkActionBar">
徽标出现,但是2个动作按钮移动到溢出菜单。问题是:如何移动此操作按钮?
我的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/action_share"
android:title="@string/action_share"
android:icon="@drawable/ic_action_share"
android:orderInCategory="110"
app:showAsAction="always" />
<item android:id="@+id/deleteNote"
android:title="@string/delete"
android:orderInCategory="111"
android:icon="@drawable/ic_action_delete"
app:showAsAction="always" />
</menu>
MainActivity
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
if (isAddingNote)
{
menu.removeItem(R.id.deleteNote);
menu.removeItem(R.id.action_share);
}
return true;
在这个论坛上,我发现了两篇贴心的帖子,但它对我没有帮助。 Action buttons doesn't show up on Action Bar? 和Actionbar not shown with AppCompat
答案 0 :(得分:0)
根据我对你的问题的理解,你最初试图改变你没有成功的actionBar的图标,并最终得到其他错误。
让我告诉你,你的menu_main.xml
代码完美无缺,没有任何错误。
有两种可能的解决方案,这取决于您的要求。
如果您正在开发具有材料设计支持的应用程序,即使用Appcompat,请使用以下答案。
再次将android:Theme.Holo.Light.DarkActionBar
更改为Theme.AppCompat.Light.DarkActionBar
。
再次将extends Activity
更改为extends ActionBarActivity
。
将此代码写入您的java文件以更改操作栏的徽标。
ActionBar actionBar = getSupportActionBar();
actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_HOME | ActionBar.DISPLAY_SHOW_TITLE);
actionBar.setIcon(R.drawable.YourLogo);`
如果您想使用Holo主题实现您的应用,请使用以下答案。
extends Activity
。android:Theme.Holo.Light.DarkActionBar
。替换你的main_menu.xml
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/action_share"
android:title="share"
android:orderInCategory="110"
android:showAsAction="always"
android:icon="@drawable/ic_action_share" />
<item android:id="@+id/deleteNote"
android:title="delete"
android:orderInCategory="111"
android:showAsAction="always"
android:icon="@drawable/ic_action_delete" />
</menu>
P.S。我不明白为什么你从代码中删除菜单项。 即
if (isAddingNote)
{
menu.removeItem(R.id.deleteNote);
menu.removeItem(R.id.action_share);
}