0

我正在使用来自: https ://github.com/mikepenz/MaterialDrawer 的 MaterialDrawer

当用户按下后退按钮时,应用程序会后退一个活动,而不是仅仅关闭抽屉。

这是一个错误还是有办法修复它?

4

2 回答 2

1

这是预期的行为。如果要在后按时关闭抽屉,则必须覆盖该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();
    }
}

希望能帮助到你。

于 2019-12-30T11:24:56.930 回答
0

如果在按下后退按钮时打开抽屉,只需关闭抽屉

@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();     
  }
}
于 2019-12-30T11:22:44.640 回答