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,并将其添加到回退栈中。当您按下返回按钮时,它将从回退栈中弹出。

相关内容

热门资讯

透视胜率!拱趴大菠萝怎么开挂(... 透视胜率!拱趴大菠萝怎么开挂(透视)开挂辅助方法(确实是真的挂)-哔哩哔哩拱趴大菠萝怎么开挂辅助器中...
透视免费!wepoker怎么提... 透视免费!wepoker怎么提高运气,德州辅助工具到底怎么样,练习教程(都是真的是有挂)-哔哩哔哩1...
透视输赢!拱趴大菠萝十三水辅助... 透视输赢!拱趴大菠萝十三水辅助(透视)开挂辅助攻略(切实真的是有挂)-哔哩哔哩;1、该软件可以轻松地...
透视教学!hhpoker是正规... 透视教学!hhpoker是正规的吗,wejoker私人辅助软件,指引教程(一贯有挂)-哔哩哔哩1、实...
透视有挂!wepoker辅助器... 透视有挂!wepoker辅助器怎么弄,wepoker辅助视频,法门教程(确实真的有挂)-哔哩哔哩1、...
透视实锤!wepoker透视脚... 透视实锤!wepoker透视脚本免费(透视)开挂辅助插件(一直是真的挂)-哔哩哔哩1、wepoker...
透视好友房!wepoker私人... 透视好友房!wepoker私人局辅助器怎么用,hhpoker有没有辅助挂,经验教程(真是是真的挂)-...
透视ai代打!sohoo po... 透视ai代打!sohoo poker辅助器(透视)开挂辅助软件(本来是真的挂)-哔哩哔哩1、完成so...
透视挂透视!wpk透视辅助靠谱... 透视挂透视!wpk透视辅助靠谱吗,hhpoker辅助软件,窍要教程(其实有挂)-哔哩哔哩1、每一步都...
透视中牌率!hhpoker辅助... 透视中牌率!hhpoker辅助靠谱吗,wepoker怎么获得好牌,演示教程(一贯有挂)-哔哩哔哩1、...