android - 在片段onDetach发生什么
问题描述:
我在底部导航中使用嵌套片段。在第一次,所有的片段被加载,一切都很好,但当我改变片段,空异常被解雇,我看到getParentFragment()
返回null,因为onDetach
被调用我需要知道,在儿童片段中发生了什么func?孩子片段从父母分离,我必须再次设置它?如何避免这种分离?android - 在片段onDetach发生什么
public void switchFrag() {
Fragment displayedFragment;
FragmentTransaction transaction = getChildFragmentManager().beginTransaction();
if (isListFragmentDisplayed) {
displayedFragment = mapFragment;
transaction.replace(R.id.fragment_contaner, displayedFragment, "map").commit();
} else {
displayedFragment = listFragment;
transaction.replace(R.id.fragment_contaner, displayedFragment, "list").commit();
}
isListFragmentDisplayed = !isListFragmentDisplayed;
}
答
detach方法从UI中删除片段,但其状态由Fragment Manager维护。这意味着您可以通过调用attach方法重新使用此片段,并使用修改后的ViewHierarchy
答
从Android 4.2开始支持嵌套片段。
你可以使用getChildFragmentManager()...
拆离:
拆离从UI给定的片段。这与将 置于反向堆栈时的状态相同:将该片段从UI中删除, 但是其状态仍由 管理器主动管理。进入这种状态时,它的视图层次被破坏。
请写出您的片段更改方法 –