我需要用不同的视图更新片段。我发现,要强制 Fragment::onCreateView() 方法调用(向用户显示我的更新),我只能使用 FragmentTransaction 的方法 replace(, )。如果我每次调用 FragmentTransaction::replace() 时创建一个新的 Fragment 和一个用于从 onCreateView() 方法返回它的新视图,效果会很好。但我希望将一些观点留在记忆中。如何重用我的视图?
问题是,如果我在一个新片段上使用我的视图(附加到已经替换的片段),我会得到一个异常:“java.lang.IllegalStateException:指定的孩子已经有一个父母。你必须调用 removeView()首先是孩子的父母。”
因此,我尝试通过调用 FragmentTransaction.detach() 或 FragmentTransaction.remove() 将视图与片段分离,以导致从活动中删除片段并从已替换的片段中删除我的视图,但这无济于事。
有谁知道如何强制片段删除其子视图(在 onCreateView() 中返回?