android - 更改操作栏android上的抽屉导航图标

标签 android android-actionbar icons navigation-drawer

我使用 ActionBar 在我的应用程序中创建了 NavigationDrawer。 enter image description here

如上图所示,我想将 NavigationDrawer 切换按钮图标更改为我想要的东西。怎么改?

这是我的代码:-

mDrawerList.setOnItemClickListener(new SlideMenuClickListener());


    // enabling action bar app icon and behaving it as toggle button
    getActionBar().setDisplayHomeAsUpEnabled(true);
    getActionBar().setHomeButtonEnabled(true);

    mDrawerToggle = new ActionBarDrawerToggle(this, mDrawerLayout,
            R.drawable.hamburger_button, //nav menu toggle icon
            R.string.app_name, // nav drawer open - description for accessibility
            R.string.app_name // nav drawer close - description for accessibility
            ) {
        public void onDrawerClosed(View view) 
        {

            getActionBar().setTitle(mTitle);
            // calling onPrepareOptionsMenu() to show action bar icons
            invalidateOptionsMenu();
        }

        public void onDrawerOpened(View drawerView) {
            getActionBar().setTitle("Settings");
            // calling onPrepareOptionsMenu() to hide action bar icons
            invalidateOptionsMenu();
        }
    };
    mDrawerLayout.setDrawerListener(mDrawerToggle);
@Override
protected void onPostCreate(Bundle savedInstanceState) {
    super.onPostCreate(savedInstanceState);
    // Sync the toggle state after onRestoreInstanceState has occurred.
    mDrawerToggle.syncState();
}

@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
    // Pass any configuration change to the drawer toggls
    mDrawerToggle.onConfigurationChanged(newConfig);
}

如果我尝试将其更改为 R.drawable.hamburger_button 它仍然显示默认图标

最佳答案

要使用 v7 ActionBarDrawerToggle 将抽屉指示器图标替换为您自己的可绘制(非动画),您可以执行以下操作:

//After instantiating your ActionBarDrawerToggle
mDrawerToggle.setDrawerIndicatorEnabled(false);
Drawable drawable = ResourcesCompat.getDrawable(getResources(), R.drawable.your_custom_icon, getActivity().getTheme());
mDrawerToggle.setHomeAsUpIndicator(drawable);
mDrawerToggle.setToolbarNavigationClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        if (mDrawerLayout.isDrawerVisible(GravityCompat.START)) {
            mDrawerLayout.closeDrawer(GravityCompat.START);
        } else {
            mDrawerLayout.openDrawer(GravityCompat.START);
        }
    }
});

关于android - 更改操作栏android上的抽屉导航图标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24482825/

相关文章:

java - Android线程困惑

android - 从应用程序 android 打开当前正在进行的通话

android - Action Bar UP 导航 Activity 到 Fragment

android - findViewById 仍然返回 null(新手)

Android setLogo 没有放在 Action Bar 的中心

android - 操作栏自定义 View

c++ - Qt 应用程序在 Windows 10 上缺少开始菜单和任务栏图标

icons - 'Add or Remove Programs' 中 ClickOnce 应用程序的图标

iphone - 测试期间应用程序图标未显示在 iPhone 5 设备上

java - 我的菜单被隐藏了,尽管我定义了它