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

问题描述 投票:0回答:2

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

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

是错误还是有解决方法?

android navigation-drawer drawer materialdrawer
2个回答
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();
    }
}

希望有帮助。


0
投票

如果按下后退按钮打开抽屉,请先合上抽屉

@override
public void onBackPressed(){
  //DrawerLayout result = (DrawerLayout) findViewById(R.id.drawer_layout);
  result= result.getDrawerLayout();
  if(result.isDrawerOpen(GravityCompat.START)) {
    //drawer is open
    //result.closeDrawer(GravityCompat.START); 
    result.closeDrawer();     
  }
}
© www.soinside.com 2019 - 2024. All rights reserved.