2017-09-27 61 views
0

我在底部導航中使用嵌套片段。在第一次,所有的片段被加載,一切都很好,但當我改變片段,空異常被解僱,我看到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; 
    } 
+0

請寫出您的片段更改方法 –

回答

0

detach方法從UI中刪除片段,但其狀態由Fragment Manager維護。這意味着您可以通過調用attach方法重新使用此片段,並使用修改後的ViewHierarchy

0

從Android 4.2開始支持嵌套片段。

你可以使用getChildFragmentManager()...

拆離:

拆離從UI給定的片段。這與將 置於反向堆棧時的狀態相同:將該片段從UI中刪除, 但是其狀態仍由 管理器主動管理。進入這種狀態時,它的視圖層次被破壞。

相關問題