【发布时间】:2019-12-30 11:05:32
【问题描述】:
我使用 MaterialDrawer 来自: https://github.com/mikepenz/MaterialDrawer
当用户按下后退按钮时,应用程序会后退一个活动,而不是仅仅关闭抽屉。
这是一个错误还是有办法修复它?
【问题讨论】:
-
发布您的代码,我们可以帮助您。
标签: android navigation-drawer drawer materialdrawer
我使用 MaterialDrawer 来自: https://github.com/mikepenz/MaterialDrawer
当用户按下后退按钮时,应用程序会后退一个活动,而不是仅仅关闭抽屉。
这是一个错误还是有办法修复它?
【问题讨论】:
标签: android navigation-drawer drawer materialdrawer
这是预期的行为。如果要在后按时关闭抽屉,则必须覆盖 onBackPressed() 函数。
首先获取您的 DrawerLayout 的引用:
DrawerLayout myDrawer = (DrawerLayout) findViewById(R.id.my_drawer);
然后重写 onBackPressed() 函数以在抽屉打开而不是关闭活动时关闭它:
@Override
public void onBackPressed() {
if (myDrawer.isDrawerOpen(GravityCompat.START)) {
myDrawer.closeDrawer(GravityCompat.START);
}
else {
super.onBackPressed();
}
}
希望对你有帮助。
【讨论】:
如果抽屉在按下返回按钮时打开,只需关闭抽屉
@override
public void onBackPressed(){
//DrawerLayout drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
DrawerLayout drawerLayout = result.getDrawerLayout();
if(drawerLayout.isDrawerOpen(GravityCompat.START)) {
//drawer is open
drawerLayout.closeDrawer(GravityCompat.START);
//result.closeDrawer();
}
}
【讨论】: