1

我有一個選項卡式應用程序,比如2個選項卡。它最初是使用ActivityGroup開發的。但是,在意識到ActivityGroup不支持多窗格的情況下,我決定使用片段。在解決問題之前,讓我介紹一下應用程序。保留片段選項卡上的視圖更改

所以,就像我說之前,它是一個標籤式應用

TabA---> Activity1---> Activity2---> Activity3 

TabB---> Activity4---> Activity5----> Activity6 

這是我的老年活動組基於應用程序的工作格局。

現在用的片段,這將變成類似下面

FragmentActivity---> TabAFragment---> FragmentA1---> FragmentA2 
       | 
       ---> TabBFragment---> FragmentB1---> FragmentB2 

每個片段連接到服務器對初始加載數據。

而在交易中,我每次添加時都會替換片段。

FragmentTransaction ft = manager.beginTransaction(); 
ft.replace(R.id.realtabcontent, fragment); 
ft.commit(); 

什麼觀察

我只有一個活性(FragmentActivity-其中創建的選項卡),用於這兩個選項卡的片段。我爲所有選項卡共享此活動。例如,我在tabB中加載fragmentB1,使視圖膨脹,從服務器獲取數據並顯示在ListView中。然後我切換到其他tabA並​​加載fragmentA1。到現在爲止還挺好。現在,如果我回到tabB,我想看看之前加載的listView。會發生什麼,它會從一方開始。

這是我對碎片的第一手經驗。我做了一些研究;但它並沒有真正幫助修復我的。

如何保留已加載的視圖?

有什麼想法?

回答

0

嗨我還相當新的所有片段也。但是,我做了類似的事情,發現我需要將當前片段添加到後面的堆棧中,像這樣。

FragmentTransaction ft = manager.beginTransaction(); 
ft.replace(R.id.realtabcontent, fragment); 
ft.addToBackStack (null); 
ft.commit(); 

希望這是一些使用的:

ft.addToBackStack (null); 

使你的代碼變得此行會去只是你COMIT之前。

相關問題