1

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

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

截屏

下面是构造 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 文件

图标

如何更改 DrawerLayout 图标?

4

2 回答 2

2

我遇到了同样的问题,我总是看到左箭头图标。我以这种方式解决了:

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

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

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

于 2015-09-29T14:26:36.973 回答
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 */
    ) 

它现在应该可以工作

于 2015-10-20T07:54:41.017 回答