我的应用程序使用ActionBarCompat
库以及NavigationDrawer
支持库。
我使用ActionBarDrawerToggle
appcompat v7来获取抽屉。 ActionBar
上有自定义搜索视图。像这样:
但是抽屉指示器显示错误,在展开动作搜索视图时不显示后退箭头;
我希望它像PlayStore应用程序一样显示:
我该怎么办?提前谢谢。
答案 0 :(得分:3)
可以简单快速地解决这个问题。
首先,您应该知道不推荐使用android.support.v4.app.ActionBarDrawerToggle。 您必须将其替换为android.support.v7.app.ActionBarDrawerToggle。
这是一个显示相同的例子。
DrawerLayout mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
ActionBarDrawerToggle mDrawerToggle = new ActionBarDrawerToggle(
this, mDrawerLayout, mToolbar,
R.string.navigation_drawer_open, R.string.navigation_drawer_close
);
mDrawerLayout.setDrawerListener(mDrawerToggle);

之后使用支持动作栏,如图所示here in this documentation,然后您的抽屉指示器将正确显示,同时显示动作搜索视图展开时的后退箭头。
请记住使用com.android.support:appcompat-v7:21.0.+" (Api等级21) 和android.support.v7.app.ActionBar
您可以使用此guide设置支持库。
然后你的抽屉指示器看起来就像这样...... !!!
答案 1 :(得分:1)
您遇到了这个问题,因为您在主题中设置了(android:)homeAsUpIndicator
。删除该属性将解决您的问题。
答案 2 :(得分:0)
这不是ActionBarDrawerToggle
的箭头。我认为Google使用Toolbar
和谷歌io应用程序一样。在OnClick事件中,他们只需使用toolbar.setNavigationIcon(R.id.ic_up)
更改工具栏导航图标。 R.id.ic_up
- 是一个自定义箭头可绘制的。
答案 3 :(得分:0)
对我来说,这里发布的SO解决方案都没有。我不得不在支持库的引擎盖下查找为什么以及何时是主页图标集,我注意到了一些事情。主要观察是该功能设置了图标:
android.support.v7.widget.Toolbar#setNavigationIcon(android.graphics.drawable.Drawable)
就行了
mNavButtonView.setImageDrawable(icon);
如果您遇到与我相同的问题并且没有建议的解决方案有效(设置主题,尝试在工具栏上调用setNavigationIcon,在Actionbar上调用setHomeAsUpIndicator,甚至是其他东西),我建议找到上面提到的函数并在那里放置断点。然后,您可以看到函数被调用的时间,并识别设置图标的最后一个函数调用(来自android studio中的Frame窗口)。对我来说,这是活动生命周期方法同步导航抽屉:
@Override
protected void onPostCreate(Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState);
mDrawerToggle.syncState();
mToolbar.setNavigationIcon(R.drawable.ic_hamburger);
}
我只是添加了最后一行并且它有效。