我有一個主要活動,包括一個操作欄,選項卡和一些片段。每當我切換一個標籤,重新創建完整的片段。在一些片段中,我有一個從web服務加載的內容的列表視圖,我不希望這從web服務被召回...列表視圖是一個通過點擊listview,所以你可以瀏覽它。帶有片段的Android ActionBar每次都會重新加載
碎片是最好的選擇還是我需要別的東西來保持內容的存活。例如iOS中的tabbar,那裏每個viewcontroller保持活着。
感謝您的幫助!
我有一個主要活動,包括一個操作欄,選項卡和一些片段。每當我切換一個標籤,重新創建完整的片段。在一些片段中,我有一個從web服務加載的內容的列表視圖,我不希望這從web服務被召回...列表視圖是一個通過點擊listview,所以你可以瀏覽它。帶有片段的Android ActionBar每次都會重新加載
碎片是最好的選擇還是我需要別的東西來保持內容的存活。例如iOS中的tabbar,那裏每個viewcontroller保持活着。
感謝您的幫助!
我不知道是否有可能改變行爲,以便使Fragment
s在內存中保留,但我確實記得在使用FragmentPagerAdapter
時需要做類似的事情,其中可以指定最大值編號爲Fragment
的適配器在開始銷燬它們之前在內存中保留的內存。但是,這是我特殊原因出現的一個例外情況。
適當的'Android方法'是設計你的Fragment
s和Activity
類,這樣他們就可以常規地處理創建/消除循環,持續並回憶它們的狀態。您最好不要試圖改變破壞和創建行爲,而是使用專爲特定目的而設計的現有生命週期方法來保存來自Fragment
的狀態數據。根據數據類型,從Web服務加載的數據應根據需要緩存到某個位置。應該認識到的是,類別也確實需要能夠應對在設備旋轉等事件期間被破壞。如果設備進入睡眠狀態,或者應用程序進入後臺等等,也會發生這種情況。因此,很難擺脫將狀態和Web服務數據保留在onDestroy()
/onCreate()
週期之間的需要。
奧克,但我記得當我使用tabhost時,他們將存儲在內存中。例如,當用戶在列表中向下滾動並單擊某個項目並返回時,該列表需要保持在相同的位置。 – Flappy
附註:這是一個「我希望我的數據堅持」而不是「我的碎片應該保持活力」的問題。 –
同樣的問題在這裏,但我解決了,我張貼示例代碼看看.. –
你在哪裏有示例代碼? – Flappy