ActionBarDrawerToggle()图标不能设置为Android SDK 5中的ActionBar

我有一个简单的问题,初始化我的图标,我的行动栏。 我正在使用Android SDK 5和自android.support.v4.app.ActionBarDrawerToggle; 已弃用我导入v7的支持,并取代我的导入与以下内容: android.support.v7.app.ActionBarDrawerToggle; 即与v7相同的包。

现在,当我初始化我的ActionBarDrawerToggle对象与我的DrawerLayout对象从import android.support.v4.widget.DrawerLayout;import android.support.v4.widget.DrawerLayout; 我被迫删除一个参数,这似乎可以(不知道为什么,但!)。 但我的图标不在我的ActionBar。 这里是我的ActionBarDrawerToggle对象的初始化:

 mActionBarDrawerToggle = new ActionBarDrawerToggle(this, drawerLayout, R.drawable.ic_drawer, R.string.drawer_open) { /** Called when a drawer has settled in a completely closed state. */ @Override public void onDrawerClosed(View view) { super.onDrawerClosed(view); invalidateOptionsMenu(); // creates call to onPrepareOptionsMenu() } /** Called when a drawer has settled in a completely open state. */ @Override public void onDrawerOpened(View view) { super.onDrawerOpened(view); invalidateOptionsMenu(); // creates call to onPrepareOptionsMenu() } }; 

我在我的资源中有图像,即R.drawable.ic_drawer

我似乎无法find为什么我的图标不出现在v7。

PS的代码工作完全正常,事实上,当我切换回v4导入,并添加额外的参数切换对象的初始化(不得不裸露在丑陋的不赞成交叉线的课程),图标出现,但不是在v7。

提前致谢 :)

    实际上,如果你看看新的v7.ActionBarDrawerToggle的 javadoc,你可以意识到新的类不提供构造函数,它将Drawable作为参数 – 你提供Drawable的第三个参数是描述打开抽屉的String resourse。 如果你想设置一个自定义的图标,你必须使用另一个ActionBarDrawerToggle的构造函数:

     ActionBarDrawerToggle(Activity activity, DrawerLayout drawerLayout, Toolbar toolbar, int openDrawerContentDescRes, int closeDrawerContentDescRes) 

    在这种情况下,工具栏的导航图标将被用作抽屉图标

    虽然不推荐使用v4.ActionBarDrawerToggle,但可以使用其他方法更改以下图标:

     getSupportActionBar().setHomeButtonEnabled(true); getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_menu_drawer);