操作按钮移动到溢出菜单 (ActionBar)

Action buttons move to overflow menu (ActionBar)

我的 ActionBar 有 2 个操作按钮,当我尝试更改 ActionBar 上的徽标时,它没有显示。我找到了解决方案:在我的 Mainactivity class 中,我将 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>

主要Activity

@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

根据我对你的问题的理解,你最初是想更改 actionBar 的图标,但没有成功,结果出现其他错误。

让我告诉你,你的 menu_main.xml 代码运行完美,没有任何错误。

有两种可能的解决方案,具体取决于您的要求。

  1. 如果您使用 material 设计支持开发您的应用程序,即使用 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);`
      

  1. 如果您想使用 Holo 主题实施您的应用,请使用以下答案。

    • 首先,根据您使用的 IDE 从您的项目中删除 Appcompat 库。
    • 让你的 activity 成为 extends Activity
    • 让你的主题成为android:Theme.Holo.Light.DarkActionBar
    • 将TargetSDK更改为21以下。将编译版本更改为21以下。
    • 换你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。我不明白为什么要从代码中删除菜单项。 IE。

    if (isAddingNote)
    {
        menu.removeItem(R.id.deleteNote);
        menu.removeItem(R.id.action_share);
    }