1

我有一個單一的Activity體系結構,其中我在MainActivity的另一個ViewGroup中加載PreferenceFragmentCompat。自定義導航存在於MainActivity之內,因此您可以在片段中加載ViewGroup,並在同一個MainActivity之內導航。片段不會顯示第二次使用它

我第一次導航到ViewGroup時,PreferenceFragmentCompat加載完全正常。但是,當我離開包含PreferenceFragmentCompatViewGroup,然後再返回時,PreferenceFragmentCompat不會顯示後續時間。 ViewGroup確實存在,但在片段應該是空的地方。我可以通過斷點/日誌記錄看到片段正在經歷其生命週期 - 它只是不可見。

一種新的含ViewGroup和一個新的PreferenceFragmentCompat對象對創建的每個餘導航回ViewGroup時間,因此它不應該被得到附加到舊ViewGroup。導航架構太複雜,張貼在這裏,但這裏是我如何加入片段中包含ViewGroup類的每個時間:

CustomPreferenceFragment fragment = new CustomPreferenceFragment(); 
FragmentManager fm = activity.getSupportFragmentManager(); 
FragmentTransaction ft = fm.beginTransaction(); 
ft.add(R.id.fragment_frame_container, fragment); 
ft.commit(); 

沒有人有任何想法,爲什麼碎片可能不會被顯示出來?

回答

1

我發現了這個問題。這比我想象的要簡單得多。由於每次都會創建新的ViewGroup,因此它們都會包含R.id.fragment_frame_container視圖,因此該片段將被添加到舊的ViewGroup中,然後它可以被替換爲新的。解決方案是如果它已經存在,則不會每次創建新的ViewGroup

相關問題