我需要知道为什么我们总是使用A.newInstance()或A()来实例化片段的新对象,如果我们知道已存在实例的话。它不会增加Android中应用程序的内存使用量吗?
在我的情况下,我有一个活动和多个片段,由抽屉片段中的菜单打开。这些片段还可能会打开抽屉菜单中未列出的其他片段。所以我想知道每次按顶部片段创建二级片段的新实例是否正常。顶级片段也是如此。我的流程解释如下:
有多个片段A(顶级/第7点)和B(较低级别/第4点)的实例是否正确?当我使用这个策略?
答案 0 :(得分:0)
每当你在页面之间切换时,你就不应该实例化新的片段"
你需要add
使用标签(可选的字符串参数)将它们放入FragmentManager,然后使用该标签(findFragmentByTag
)找到它们,并replace
当前显示的片段如果你能找到另一个。否则,您可以实例化一个新的。
我认为你还需要将碎片放在后面的堆栈(addToBackStack
)上,所以它们被FragmentManager保留了