onBackPressed() 在 Fragment 中不起作用

我想当我回来时它完全转到手机的主页,但onBackPressed()不起作用。顺便说一句,我的页面是一个片段。



慕斯709654
浏览 153回答 2
2回答

largeQ

在您的片段中使用getActivity().onBackPressed();它将执行onBackPressed()您的父活动更准确地说Activity activity = getActivity();    if (activity != null) {        activity.onBackPressed();}编辑:用于requireActivity()避免空指针requireActivity().onBackPressed();

慕村9548890

onBackPressed 回调由您的父活动处理。因此您可以覆盖父活动的回调XyzActivity.java:@Overridepublic 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();}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java