默认情况下,当抽屉显示并按BackButton
它自动关闭时。
但是我希望当它显示并且用户点击BackButton
时,关闭应用。
我尝试了这些解决方案,但没有奏效:
Navigation drawer, handling the back button to go to previous fragments
答案 0 :(得分:0)
首先覆盖您的活动后退,然后可以检查抽屉是否打开
mDrawerLayout.isDrawerOpen(GravityCompat.START);
如果返回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中检查抽屉是否打开,如上所述。
答案 1 :(得分:0)
onBackPressed
,或者如果您的键盘打开,那么您的后退键也会变为向下箭头。因此,当您按下该键时,键盘会隐藏,而onBackPressed
将不会被静止调用。
再次按后退按钮时,您的应用将会关闭。键盘也是如此。
首先关闭抽屉,然后再按一下按钮,然后你的应用程序将完成