1. 程式人生 > >Android Fragment 監聽物理返回 back 鍵

Android Fragment 監聽物理返回 back 鍵

在很多場景下,我們需要 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(); }

完成!

------至所有正在努力奮鬥的程式猿們!加油!!
有碼走遍天下 無碼寸步難行
1024 - 夢想,永不止步!
愛程式設計 不愛Bug
愛加班 不愛黑眼圈
固執 但不偏執
瘋狂 但不瘋癲
生活裡的菜鳥
工作中的大神
身懷寶藏,一心憧憬星辰大海
追求極致,目標始於高山之巔
一群懷揣好奇,夢想改變世界的孩子
一群追日逐浪,正在改變世界的極客
你們用最美的語言,詮釋著科技的力量
你們用極速的創新,引領著時代的變遷

——樂於分享,共同進步,歡迎補充
——Any comments greatly appreciated
——誠心歡迎各位交流討論!QQ:1138517609
——CSDN:https://blog.csdn.net/u011489043
——簡書:https://www.jianshu.com/u/4968682d58d1
——GitHub:https://github.com/selfconzrr