Fragment監聽返回鍵最簡單的方式

核心就是藉助於繼承通用的BaseFragment 、利用Activity的返回監聽

1、首先在BaseFragment中定義一個公共方法

 public boolean onKeyBackPressed() {
        return false;
    }

2、在業務LogicFragment 繼承 BaseFragment 覆蓋 onKeyBackPressed 返回,注意此處返回的布爾值,一會再說

//部分業務代碼請忽略,注意返回值
    @Override
    public boolean onKeyBackPressed() {
        if (mCurrLeve==2){
            mCurrLeve--;
            actionGetTreeTask(mCurrLeve);
            return true;//用來自定義事件已經消費
        }
        return false;//用來自定義事件未消費
    }

3、覆蓋LogicActivity的onBackPressed方法 將返回時間傳遞給BaseFragment

@Override
    public void onBackPressed() {
        BaseFragment fragment = (BaseFragment) getSupportFragmentManager()
                .findFragmentById(R.id.content_frame);
        if (!fragment.onKeyBackPressed()){//fragment.onKeyBackPressed()返回false代表未消費事件
            super.onBackPressed();//繼續執行原有返回邏輯
        }
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章