onBackPressed() 在片段中不起作用

onBackPressed() is not working in Fragment

我想在我回来的时候完全去 phone 的家,但是 onBackPressed() 不工作。 我的页面是一个片段 btw.

在您的片段中使用 getActivity().onBackPressed(); 它将执行您父 activity

onBackPressed()

更准确

Activity activity = getActivity();
    if (activity != null) {
        activity.onBackPressed();}

编辑:使用 requireActivity() 避免空指针

requireActivity().onBackPressed();

onBackPressed 回调由您的 parent activity 处理。所以你可以覆盖 parent activity

上的回调

XyzActivity.java:

@Override
public void onBackPressed() {
    handleBackPress();
}


public void handleBackPress() {
    Fragment visibleFragment = getSupportFragmentManager().findFragmentById(R.id.fragmentFrameLayout);
    if (visibleFragment == null) {
        return;
    }else if (visibleFragment instanceof PreviewFragment) {
        CommonFunctions.showDialogActionable(this, "Confirm", "Are you sure you want to exit?",
            "Yes", (dialogInterface, i) -> {
                finish();
            }, "No", null, "", null, true);
        return;
    }else
        finish();
    super.onBackPressed();
}