Fragment的add()方法和replace()方法之间的基本区别

25
< p > Fragmentreplaceadd 方法有什么不同,是否有任何真实场景需要使用这些方法来实现特定目的。


3
这篇文章讨论了 Android 中 FragmentTransaction 的三种方法:add、replace 和 addToBackStack 的区别。add 方法会将一个新的 Fragment 添加到当前的 Activity 中,如果该 Fragment 已经存在,则不做任何操作。replace 方法会移除当前所有的 Fragment 并添加一个新的 Fragment,相当于先执行 remove 再执行 add。addToBackStack 方法用于在用户按下返回键时回退到上一个 Fragment。总之,add 方法是简单地添加一个 Fragment,replace 方法会替换当前的 Fragment,而 addToBackStack 方法会将事务添加到后退栈中,以便用户可以按下返回键来撤销该事务。 - Decoy
2个回答

60
重要的区别是: replace会删除现有的片段并添加一个新的片段,而add会保留现有的片段并添加一个新的片段,这意味着现有的片段将是活动的,它们不会处于'暂停'状态,因此当按下后退按钮时,对于现有的片段(在添加新片段之前存在的片段)将不会调用onCreateView()
要获取更多信息,请访问此对话。

6
你的意思是现有的片段将会处于暂停状态吗? - sarvesh chavan

4
fragmentTransaction.replace(int containerViewId, Fragment fragment, String tag)

描述 - 它替换了已添加到容器中的现有碎片。这本质上与为所有当前添加的具有相同containerViewId的片段调用remove(Fragment),然后使用此处给出的相同参数调用add(int,Fragment,String)相同。

fragmentTransaction.add(int containerViewId, Fragment fragment, String tag)

描述 - 它向活动状态添加一个片段。如果Fragment.onCreateView返回非空,这个片段还可以选择将其视图放入活动的容器视图中。

请访问以下官方Android开发者链接以获取有关片段的更多详细信息...http://developer.android.com/guide/components/fragments.html


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接