我最近更新了我的应用程序,在2个活动中使用导航抽屉(而不是像过去那样只使用一个)。为此,制作了一个DrawerActivity父类,并将这个类扩展到我想要使用它的两个活动上。问题是,它不是显示三行符号,而是显示后箭头符号。以前,当我只在主要活动中使用导航抽屉时,它显示为应该(使用三条线),如下所示:
这是我用于此的代码:
drawerListener = new ActionBarDrawerToggle(this, drawerLayout,
R.drawable.ic_navigation_drawer, R.string.navigation_drawer_open,
R.string.navigation_drawer_close) {
@Override
public void onDrawerClosed(View drawerView) {
super.onDrawerClosed(drawerView);
}
@Override
public void onDrawerOpened(View drawerView) {
super.onDrawerOpened(drawerView);
}
@Override
public void onDrawerSlide(View drawerView, float slideOffset) {
}
}
getActionBar().setHomeButtonEnabled(true);
getActionBar().setDisplayHomeAsUpEnabled(true);
为什么它会显示后退按钮而不是三条线?谢谢。
答案 0 :(得分:3)
@Override
protected void onPostCreate(Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState);
drawerListener.syncState();
}
感谢大家的支持,并希望这有助于其他人避免忘记syncState()函数。
答案 1 :(得分:0)
尝试将代码更改为:
// enabling action bar app icon and behaving it as toggle button.
// call these codes before calling "setDrawerListener(drawerListener)"
getActionBar().setDisplayHomeAsUpEnabled(true);
getActionBar().setHomeButtonEnabled(true);
// set up the drawerListener
drawerListener = new ActionBarDrawerToggle(this, mDrawerLayout,
R.drawable.ic_drawer, //nav menu toggle icon
R.string.app_name, // nav drawer open - description for accessibility
R.string.app_name // nav drawer close - description for accessibility
) {
public void onDrawerClosed(View view) {
// calling onPrepareOptionsMenu() to show action bar icons
invalidateOptionsMenu();
}
public void onDrawerOpened(View drawerView) {
// calling onPrepareOptionsMenu() to hide action bar icons
invalidateOptionsMenu();
}
};
mDrawerLayout.setDrawerListener(drawerListener);
R.drawable.ic_drawer
是drawable
资源文件夹中显示三行图标的图标。下载ic_drawer
here并将其导入您的项目。
答案 2 :(得分:0)
在我的情况下,删除行{{1}},然后再用三行替换后面的箭头。
setDrawerIndicatorEnabled默认为true 。错误地,我把它弄错了。
答案 3 :(得分:0)
只需添加此
@Override
protected void onPostCreate(Bundle savedInstanceState) {
super.onPostCreate(savedInstanceState);
new ActionBarDrawerToggle(this, (DrawerLayout) findViewById(R.id.drawer_layout),
(Toolbar) findViewById(R.id.toolbar), R.string.navigation_drawer_open,
R.string.navigation_drawer_close) {}.syncState();
}