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();//继续执行原有返回逻辑
        }
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章