在fragment监听系统返回键

1.定义接口

新创建接口类

public interface FragmentBackListener {
    void  onbackForward();
}

2.在Activity中使用

private FragmentBackListener backListener;
private boolean isInterception = false;

public FragmentBackListener getBackListener() {
    return backListener;
}

public void setBackListener(FragmentBackListener backListener) {
    this.backListener = backListener;
}
public boolean isInterception() {
    return isInterception;
}

public void setInterception(boolean isInterception) {
    this.isInterception = isInterception;
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {

        if (isInterception()) {
            if (backListener != null) {
                backListener.onbackForward();
                return false;
            }
        }

    }
    return super.onKeyDown(keyCode, event);
}

3.在fragment中使用

首先实现第一步创建的接口

在接口中实现返回逻辑

@Override
public void onbackForward() {
    if(window != null && window.isShowing()){
        window.dismiss();
        mBottomView.setVisibility(View.GONE);
    }else {
        getActivity().finish();
    }
}

猜你喜欢

转载自blog.csdn.net/yangzongbin/article/details/79638561