繁体   English   中英

使用导航抽屉时,我无法在右侧更改ActionBar图标

[英]While using navigation drawer, I cannot change ActionBar icons on the right

对于我的应用程序,我有一个导航抽屉,并在您第一次创建应用程序时使用Android Studio中提供的抽屉。 我正在尝试更改操作栏右侧的图标,该图标当前是3个点以上。 我创建了一个菜单xml文件,其中包含图标,标题,ID和所有内容,每当我对其进行充气时,我都会使用我为其创建的正确菜单xml文件。 我想在那里添加一个简单的“+”图标,但无法弄明白。

这是我的菜单xml文件。

    <?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:id="@+id/add_profile"
        android:icon="@drawable/ic_add_new"
        android:title="@string/add_title"
        android:showAsAction="always"
    />
</menu>

这是onCreate方法。 我的菜单文件名为menu_add_profiles。

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    if (!mNavigationDrawerFragment.isDrawerOpen()) {

        getMenuInflater().inflate(R.menu.menu_add_profiles, menu);
        restoreActionBar();
        return true;
    }
    return super.onCreateOptionsMenu(menu);
}

我需要采取或采取的另一个步骤才能使其发挥作用吗?

只有当导航抽屉打开时,您当前才会对菜单进行充气..您需要删除此条件,所有这些都适用于您。以下内容应该有效。

 @Override
    public boolean onCreateOptionsMenu(Menu menu) {

            getMenuInflater().inflate(R.menu.menu_add_profiles, menu);
            restoreActionBar();
            return true;
    }

用这个

 mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout,
                R.drawable.ic_drawer, R.string.drawer_open, R.string.drawer_close) {

            /** Called when a drawer has settled in a completely closed state. */
            public void onDrawerClosed(View view) {
                super.onDrawerClosed(view);
                getActionBar().setTitle(mTitle);
                invalidateOptionsMenu(); // creates call to onPrepareOptionsMenu()
            }

            /** Called when a drawer has settled in a completely open state. */
            public void onDrawerOpened(View drawerView) {
                super.onDrawerOpened(drawerView);
                getActionBar().setTitle(mDrawerTitle);
                invalidateOptionsMenu(); // creates call to onPrepareOptionsMenu()
            }
        };

        // Set the drawer toggle as the DrawerListener
        mDrawerLayout.setDrawerListener(mDrawerToggle);
    }

http://developer.android.com/training/implementing-navigation/nav-drawer.html

我遇到了同样的问题并找到了解决方案:

android:showAsAction="always"更改为app:showAsAction="always"并添加xmlns:app="http://schemas.android.com/apk/res-auto"

这是我的menu.xml

<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item android:id="@+id/action_add_dialog"
    android:icon="@drawable/ic_add_24dp"
    android:title="@string/action_add"
    app:showAsAction="always"
    android:visible="true" />
<item android:id="@+id/action_settings_pref"
    android:icon="@drawable/ic_settings_applications_24dp"
    android:title="@string/action_add"
    app:showAsAction="always"
    android:visible="true"/>

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM