gpt4 book ai didi

android - fragmentTransaction.add 和 fragmentTransaction.replace 之间的区别

转载 作者:IT老高 更新时间:2023-10-28 22:16:08 26 4
gpt4 key购买 nike

我已经知道的是:

fragmentTransaction.replace()之后,会调用当前fragment的onStop()函数而 fragmentTransaction.add() 不会。

在调用fragMgr.popBackStack();之后,无论fragmentTransaction.replace还是fragmentTransaction.add(),我们都会回到之前的fragment > 被使用

那么 fragmentTransaction.replace 做了什么?

我可以理解我们可以在前一个 fragment 上“添加”一个 fragment ,然后通过 popBackStack() 返回到前一个 fragment ,但是:

如果前一个 fragment 被当前 fragment “替换”,我猜前一个 fragment 被删除并添加了当前 fragment ,当popBackStack()时如何返回到前一个 fragment 调用?

最佳答案

您可以将多个 fragment 添加到一个容器中,它们将一层层叠加。如果您的 fragment 具有透明背景,您将看到这种效果并且能够同时与多个 fragment 交互。

如果您在容器上使用 FragmentTransaction.add 会发生这种情况。您添加的 fragment 将放置在现有 fragment 的顶部。

如果您使用 FragmentTransaction.replace(R.id.container,fragment),它将删除容器中已经存在的所有 fragment 并将新 fragment 添加到同一容器中。

您也可以使用不带容器 id 的 add 方法,您的 fragment 将简单地添加到 FragmentManager 中的 fragment 列表中,您可以随时通过它们的 Tag 值调用这些 fragment 。

如果您将事务添加到后台堆栈,您仍然可以返回到以前的配置。即使先前的操作删除了 fragment ,您也可以这样做。删除的 fragment 会在事务中被记住,并弹出返回堆栈将其返回。

关于android - fragmentTransaction.add 和 fragmentTransaction.replace 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20682248/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com