导航不显示抽屉图标(Sherlock操作栏)

有导航抽屉使用sherlock actionbar,但我有麻烦得到3线图标(如Gmail),而不是普通的向上button“<”。 这里是我的代码ic_drawer是gmail使用的3行图标

getSupportActionBar().setIcon(R.drawable.myIcon); getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setDisplayShowTitleEnabled(true); mDrawerToggle = new ActionBarDrawerToggle(this, mDrawer, R.drawable.ic_drawer, R.string.menu_open, R.string.menu_close) { public void onDrawerClosed(View view) { super.onDrawerClosed(view); } public void onDrawerOpened(View drawerView) { super.onDrawerOpened(drawerView); } }; 

Solutions Collecting From Web of "导航不显示抽屉图标(Sherlock操作栏)"

这个解决scheme为我工作,并显示在所有版本的默认导航抽屉图标。 从这里https://github.com/nicolasjafelle/SherlockNavigationDrawer添&#x52A0;SherlockNavigationDrawer库到你的项目。 并更改您的代码如下:

 SherlockActionBarDrawerToggle mDrawerToggle = new SherlockActionBarDrawerToggle(this,mDrawerLayout, R.drawable.ic_drawer, R.string.drawer_open, R.string.drawer_close) { public void onDrawerClosed(View view) { super.onDrawerClosed(view); } public void onDrawerOpened(View drawerView) { super.onDrawerOpened(drawerView); } }; mDrawerLayout.setDrawerListener(mDrawerToggle); getSupportActionBar().setIcon(R.drawable.ic_launcher); getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setDisplayShowTitleEnabled(true); 

您是否尝试过实施该方法:

  mDrawerToggle.syncState(); 

这在过去对我有效。

虽然我现在猜测你一定已经搞定了,只是想提交一个答案:

将您的代码更改为以下内容:

 mDrawerToggle = new ActionBarDrawerToggle(this, mDrawer, R.drawable.ic_drawer, R.string.menu_open, R.string.menu_close) { public void onDrawerClosed(View view) { super.onDrawerClosed(view); } public void onDrawerOpened(View drawerView) { super.onDrawerOpened(drawerView); } }; mDrawerLayout.setDrawerListener(mDrawerToggle); getSupportActionBar().setIcon(R.drawable.myIcon); getSupportActionBar().setDisplayHomeAsUpEnabled(true); getSupportActionBar().setDisplayShowTitleEnabled(true); 

从本质上讲,在代码中设置的ActionBar选项需要在DrawerToggle完成之后而不是之前设置。

你可以先看这篇文章。 有一个答案:“你可以在主题中更改图标

<item name="android:homeAsUpIndicator">@drawable/action_arrow</item>

但我想你想要实现导航抽屉 ,所以读一下。

你可以做的是创build一个样式如下:

  <style name="AppTheme" parent="Your Theme name"> <item name="homeAsUpIndicator">@drawable/ic_drawer</item> </style> 

在Android清单中应用这个主题就像:

 <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > </application> 

这将解决确保获得3线图标的问题。

你把开关加到你的抽屉里了吗?

 mDrawerLayout.setDrawerListener(mDrawerToggle); 

当你在Android平台上运行你的应用程序时,就会发生这种情况,即使是Google应用程序也是如此。

但有一个项目不是解决这个问题: https : //github.com/nicolasjafelle/SherlockNavigationDrawer

我把它放在它的工作。

  @Override protected void onPostCreate(Bundle savedInstanceState) { super.onPostCreate(savedInstanceState); // Sync the toggle state after onRestoreInstanceState has occurred. mDrawerToggle.syncState(); } 

@ zudo1337的方法解决了我的问题。

 @Override protected void onPostCreate(Bundle savedInstanceState) { super.onPostCreate(savedInstanceState); // Sync the toggle state after onRestoreInstanceState has occurred. mDrawerToggle.syncState(); } 

我在调用setDrawerListener之前添加了这一行。

 mDrawerLayout.post(new Runnable() { @Override public void run() { mDrawerToggle.syncState(); } }); 

希望这将解决在较低的设备的问题。

可能是这会工作…

在onCreateOptionMenu膨胀你的菜单布局getSupportMenuInflater()。inflate(R.menu.action_bar_menu,menu);