显示对话框片段时禁用活动上的后退按钮

时间:2018-02-23 09:32:47

标签: android android-activity fragment

我有一个显示对话碎片的活动。 我已经将dialogfragment取消设置为false,但基础活动仍然会捕获后退按钮。 我的底层活动已经覆盖了onBackPressed方法,但我不想在显示dialogfragment时运行它。

在显示dialogfragment时如何禁用后退按钮? 如果显示了dialogfragment,我是否从活动onBackPressed方法检查并忽略后退按钮?

2 个答案:

答案 0 :(得分:0)

你必须尝试这样的.. 您的活动中的代码粘贴

当您显示dialogfragment时,时间集shouldAllowBack为false,否则设置为true

@Override
public void onBackPressed() {
   if (!shouldAllowBack) {
       doSomething...;
   } else {
       super.onBackPressed();
   }
}

遵循此方法

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if(!shouldAllowBack && keyCode==KeyEvent.KEYCODE_BACK) {
        return false;
    }
    return super.onKeyDown(keyCode, event);
}

答案 1 :(得分:0)

显示 DialogFragment 设置isBackDisable = true

以及onBackPressed():

    @Override
    public void onBackPressed() {
        if (isBackDisable) return; // funtion will do nothing

        // do something from here. 
        Log.e("back disabled",false); // if isBackDisable = false then log will be printed
    }