onBackPressed () не работает во фрагменте - PullRequest
0 голосов
/ 04 октября 2019

Я хочу, чтобы он полностью возвращался домой, когда я вернулся, но onBackPressed() не работает. Моя страница является фрагментом между прочим.

Ответы [ 2 ]

2 голосов
/ 04 октября 2019

Используйте getActivity().onBackPressed(); в вашем фрагменте, чтобы выполнить onBackPressed() вашей родительской активности

, чтобы быть более точным

Activity activity = getActivity();
    if (activity != null) {
        activity.onBackPressed();}
0 голосов
/ 04 октября 2019

onBackPressed обратный вызов обрабатывается вашей родительской активностью. Таким образом, вы можете переопределить обратный вызов родительской активности

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();
}
...