默认情况下,当抽屉显示并按下BackButton
时,它会自动关闭。但我想当它显示和用户点击BackButton
,关闭应用程序。我尝试了这些解决方案,但没有工作:
导航抽屉,处理返回按钮以转到上一个片段
android导航抽屉
onBackPressed
不会在抽屉打开时被调用,或者让我们说,如果你的键盘是打开的,那么你的后退键也会变为向下箭头。所以当你按下这个键时,你的键盘隐藏了,你的onBackPressed
将不会被调用。
当您再次按后退键时,您的应用程序将被关闭。键盘也是如此。
首先关闭抽屉,然后再按下返回键,然后你的应用程序将完成
首先重写您的活动的回压,然后可以检查抽屉是否打开
mDrawerLayout.isDrawerOpen(GravityCompat.START);
如果this返回true,请关闭应用程序。
重要提示:检查抽屉重力
试着把你的片段注册成这样:
public void registerBackButton()
{
if (getView() != null)
{
getView().setFocusableInTouchMode(true);
getView().requestFocus();
final BaseFragment frag = this;
getView().setOnKeyListener(new OnKeyListener()
{
@Override
public boolean onKey(View v, int keyCode, KeyEvent event)
{
if (event.getAction() != KeyEvent.ACTION_DOWN)
{
if (keyCode == KeyEvent.KEYCODE_BACK)
{
if (isVisible())
{
return frag.onFragmentBackPressed();
}
}
}
return false;
}
});
}
}
现在在onFragmentBackPressed检查抽屉是否打开或不如上所述