美文网首页Android 开发Android精选Android
Android Fragment 监听物理返回 back 键

Android Fragment 监听物理返回 back 键

作者: BugFree张瑞 | 来源:发表于2019-01-10 15:26 被阅读18次

    在很多场景下,我们需要 Fragment 监听物理 back 键,而不是 Activity,这个时候我们只能做一些处理,来让 Fragment 拦截。

    首先在 Fragment 中自定义回调方法,如下:

    public boolean onBackPressed() {
        EventBus.getDefault().post(new ClosexxxxxEvent()); // 做我们想做的处理
        return true; // return true 代表自己处理
      }
    

    然后,在 Activity 的 onBackPressed 方法中,进行相应的处理:

    @Override
      public void onBackPressed() {
        if (mxxxxxxFragment == null) { // 获取到你的 Fragment 实例
          mxxxxxxFragment = (BaseFragment) getSupportFragmentManager()
              .findFragmentById(R.id.xxxxxx)
              .getChildFragmentManager().findFragmentById(R.id.xxxxx);
        }
    
        if (mxxxxxxFragment != null && mxxxxxxFragment instanceof xxxxxxFragment
            && !mxxxxxxFragment.isHidden()&& ((xxxxxxFragment) mxxxxxxFragment).onBackPressed()) { // 判断是否是我们需要的 Fragment
          return; // 拦截 Activity 的 back 监听
        }
        super.onBackPressed();
      }
    

    完成!

    ——乐于分享,共同进步,欢迎补充
    ——Any comments greatly appreciated
    ——诚心欢迎各位交流讨论!QQ:1138517609
    ——CSDN:https://blog.csdn.net/u011489043
    ——简书:https://www.jianshu.com/u/4968682d58d1
    ——GitHub:https://github.com/selfconzrr

    相关文章

      网友评论

        本文标题:Android Fragment 监听物理返回 back 键

        本文链接:https://www.haomeiwen.com/subject/nijarqtx.html