即使在ActionBarDrawerToggle中设置了Icon,也无法更改DrawerLayout图标

时间:2015-09-28 10:33:26

标签: android android-actionbar drawerlayout actionbardrawertoggle

我刚刚在Android Studio中创建了一个模板项目,但我没有更改一行代码(DrawerLayout模板项目)。

但是,我发现用于显示导航片段的点击图标始终是左箭头,即使在代码中它将图标设置为另一个。

screenshot

这是构建ActionBarDrawerToggle:

的代码
mDrawerToggle = new ActionBarDrawerToggle(
                getActivity(),                    /* host Activity */
                mDrawerLayout,                    /* DrawerLayout object */
                R.drawable.ic_drawer,             /* nav drawer image to replace 'Up' caret */
                R.string.navigation_drawer_open,  /* "open drawer" description for accessibility */
                R.string.navigation_drawer_close  /* "close drawer" description for accessibility */
        )

这里是ic_drawer

的png文件

icon

如何更改DrawerLayout图标?

2 个答案:

答案 0 :(得分:2)

我遇到了同样的问题,我一直看到左箭头图标。 我已经用这种方式解决了:

我注意到android.support.v4.app.ActionBarDrawerToggle类已被弃用,在我使用的NavigationDrawerFragment类中的developer.android.com之后得到了一些答案

mDrawerToggle = new ActionBarDrawerToggle(  getActivity(),                   
                                            mDrawerLayout,                    
                                            R.string.navigation_drawer_open,  
                                            R.string.navigation_drawer_close  
                                    ) { ... }

现在没关系,只有当导航抽屉出现时,图标才会转换为箭头。

答案 1 :(得分:1)

添加Anchor给出的解决方案。我设法通过更改此导入来使我的工作

import android.support.v4.app.ActionBarDrawerToggle;

import android.support.v7.app.ActionBarDrawerToggle;

这样做会在ActionBarDrawerToggle的构造函数中提示您输入错误。删除R.drawable.ic_drawer,使其变为:

mDrawerToggle = new ActionBarDrawerToggle(
            getActivity(),                    /* host Activity */
            mDrawerLayout,                    /* DrawerLayout object */
            R.string.navigation_drawer_open,  /* "open drawer" description for accessibility */
            R.string.navigation_drawer_close  /* "close drawer" description for accessibility */
    ) 

它应该现在可以使用