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();
    }
}

希望对您有所帮助。