如果我在页面上只有一个片段,则调用replace和remove / add基本相同。
我似乎找不到一篇文章谈论这两种方法之间的缺点和优点。我更担心性能,如果add会产生内存泄漏,因为片段没有经过它的生命周期来释放片段中的视图和变量。
有人可以解释一下利弊吗?谢谢!
答案 0 :(得分:0)
替换会删除现有的片段并添加一个新的片段。这意味着当您按下“后退”按钮时,将创建被替换的片段,并调用其onCreateView。
添加会保留现有片段,并添加一个新片段,这意味着现有片段将处于活动状态,并且不会处于“已暂停”状态,因此当按下onCreateView上的后退按钮时,不会调用现有片段片段(添加新片段之前的片段)。
就片段的生命周期事件而言,onPause,onResume,onCreateView和其他生命周期事件在替换的情况下将被调用,而在add的情况下将不会被调用。