代码之家  ›  专栏  ›  技术社区  ›  Poly Bug

显示dialogfragment时禁用活动上的后退按钮

  •  1
  • Poly Bug  · 技术社区  · 6 年前

    我有一个显示dialogfragment的活动。 我已经将dialogfragment cancelable设置为false,但底层活动仍然捕获后退按钮。 我的基础活动已重写onBackPressed方法,但我不希望在显示dialogfragment时运行此方法。

    当显示dialogfragment时,如何禁用“后退”按钮? 如果显示dialogfragment并忽略按下后退按钮,是否从activity onBackPressed方法检查?

    2 回复  |  直到 6 年前
        1
  •  0
  •   Raja    6 年前

    你必须这样尝试。。 在活动中粘贴代码

    当你展示 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);
    }
    
        2
  •  0
  •   Deep Patel    6 年前

    在显示 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
        }