Android-MaterialDrawer当bakc按返回活动而不是关闭抽屉

时间:2019-12-30 11:05:32

标签: android navigation-drawer drawer materialdrawer

我正在从以下位置使用MaterialDrawer: https://github.com/mikepenz/MaterialDrawer

,当用户按下“后退”按钮时,该应用将向后进行一项活动,而不仅仅是关闭抽屉。

是错误还是有解决的方法?

2 个答案:

答案 0 :(得分: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();     
  }
}

答案 1 :(得分:0)

这是预期的行为。如果要关闭“后退抽屉”功能,则必须覆盖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();
    }
}

希望有帮助。