Android - 当 bakc 按下返回时的 MaterialDrawer activity 而不是关闭抽屉
Android - MaterialDrawer when bakc press go back activity instead closing drawer
我使用的 MaterialDrawer 来自:
https://github.com/mikepenz/MaterialDrawer
并且当用户按下后退按钮时,应用会向后 activity 移动,而不只是关闭抽屉。
这是一个错误还是有办法修复它?
如果您的抽屉在按下后退按钮时打开,请关闭它
@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();
}
}
这是预期的行为。如果你想在按下后退时关闭抽屉,你必须重写 onBackPressed()
函数。
首先参考你的DrawerLayout
:
DrawerLayout myDrawer = (DrawerLayout) findViewById(R.id.my_drawer);
然后覆盖 onBackPressed()
函数以在打开时关闭抽屉而不是关闭 activity:
@Override
public void onBackPressed() {
if (myDrawer.isDrawerOpen(GravityCompat.START)) {
myDrawer.closeDrawer(GravityCompat.START);
}
else {
super.onBackPressed();
}
}
希望对您有所帮助。
我使用的 MaterialDrawer 来自: https://github.com/mikepenz/MaterialDrawer
并且当用户按下后退按钮时,应用会向后 activity 移动,而不只是关闭抽屉。
这是一个错误还是有办法修复它?
如果您的抽屉在按下后退按钮时打开,请关闭它
@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();
}
}
这是预期的行为。如果你想在按下后退时关闭抽屉,你必须重写 onBackPressed()
函数。
首先参考你的DrawerLayout
:
DrawerLayout myDrawer = (DrawerLayout) findViewById(R.id.my_drawer);
然后覆盖 onBackPressed()
函数以在打开时关闭抽屉而不是关闭 activity:
@Override
public void onBackPressed() {
if (myDrawer.isDrawerOpen(GravityCompat.START)) {
myDrawer.closeDrawer(GravityCompat.START);
}
else {
super.onBackPressed();
}
}
希望对您有所帮助。