AndroidonBackPressed添加Fragment而不是替换
创始人
2024-10-09 11:31:28
0

在使用 Fragment 替换时,通常会使用 FragmentTransaction 的replace()方法。但是,如果在回退栈中添加 Fragment,则需要使用add()方法。此外,我们需要在 onBackPressed() 方法中处理返回事件。

下面是一个示例代码,演示如何在 onBackPressed() 方法中处理 Fragment 的添加和替换:

public void onBackPressed() {
    FragmentManager manager = getSupportFragmentManager();
    int backStackCount = manager.getBackStackEntryCount();
    if (backStackCount > 0) {
        // There is a back stack, so pop this fragment and replace
        FragmentManager.BackStackEntry backEntry = manager.getBackStackEntryAt(backStackCount - 1);
        String tag = backEntry.getName();
        Fragment fragment = manager.findFragmentByTag(tag);
        manager.beginTransaction().replace(R.id.container, fragment, tag).commit();
        manager.popBackStack();
    } else {
        // There is no back stack, so call super
        super.onBackPressed();
    }
}

在此示例中,如果回退栈中有 Fragment,则使用 replace() 方法替换当前 Fragment。否则,调用父类的 onBackPressed() 方法。

请注意,在添加 Fragment 时,您需要使用 addToBackStack() 方法将其添加到回退栈中。例如:

Fragment fragment = new MyFragment();
getSupportFragmentManager().beginTransaction().add(R.id.container, fragment).addToBackStack("my_fragment").commit();

这段代码将添加一个名为 "my_fragment" 的 Fragment,并将其添加到回退栈中。当您按下返回按钮时,它将从回退栈中弹出。

相关内容

热门资讯

一分钟透视辅助软件!德普之星辅... 一分钟透视辅助软件!德普之星辅助器怎么用(透视辅助软件)详细辅助机器人(其实机器人)一分钟透视辅助软...
六分钟辅助软件!德普辅助软件(... 六分钟辅助软件!德普辅助软件(透视辅助软件)详细辅助脚本(原来脚本)德普辅助软件是一种具有地方特色的...
二分钟破解版!德普之星怎么开辅... 二分钟破解版!德普之星怎么开辅助(透视辅助软件)详细辅助作弊(其实作弊);1、玩家可以在软件透明挂俱...
二分钟辅助工具!德普辅助器辅助... 二分钟辅助工具!德普辅助器辅助器怎么用(透视辅助)详细辅助脚本(切实脚本)1、系统规律教程、辅助透视...
9分钟免费透视!德普之星透视软... 9分钟免费透视!德普之星透视软件免费入口官网,德普之星app安卓版破解版,详细教程(有挂脚本)1、下...
六分钟辅助工具!德普之星透视软... 六分钟辅助工具!德普之星透视软件免费入口官网(透视辅助软件)详细辅助安装(一直安装)1、上手简单,内...
七分钟免费透视!德普之星透视,... 七分钟免费透视!德普之星透视,德普之星怎么开辅助,详细教程(有挂秘笈)1、下载好德普之星透视辅助软件...
7分钟透视辅助!德普之星透视辅... 7分钟透视辅助!德普之星透视辅助软件,德普之星辅助工具如何设置,详细教程(有挂详情)1、进入游戏-大...
三分钟软件下载!德普之星透视(... 三分钟软件下载!德普之星透视(透视辅助软件)详细辅助教程(果然教程);1、玩家可以在德普之星透视软件...
二分钟透视辅助插件!如何下载德... 二分钟透视辅助插件!如何下载德普之星辅助软件(透视辅助)详细辅助软件(真是软件)进入游戏-大厅左侧-...