2017-10-18 77 views
0

我有一個Android應用程序,顯示大量的實時數據卡在一個大型滾動活動。即使不在屏幕上,碎片是否仍在運行?

現在我想分割成兩個更簡單的屏幕使用片段,其中只有一個片段可能在屏幕上的任何時間。

我在碎片上看了很多並觀看了幾個視頻,但在開始剝離我的代碼以將其轉換爲碎片之前,我想知道以下內容。

如果我創建兩個片段A和B,然後同時顯示片段B,數據來自在片段A.可以控制活動仍然片段傳達給它的數據,即使它的關閉屏幕?或者我必須將數據保存到某處,然後當用戶切換到片段A時,我給片段A顯示數據,同時保存片段B的傳入數據,這些數據現在將脫離屏幕?

問題是,現在我沒有保存任何數據,因爲一切都在一個屏幕上,所以數據進來我剛剛顯示它,但如果我切換到使用片段我不知道我是否可以做同樣的事情即使數據不在同一屏幕上,也會將數據傳遞到片段。

謝謝。

回答

0

如果您在活動中檢索具有多個異步請求的數據,則可以爲其中的每個請求創建一個片段,並將相關檢索操作移動到該片段中(可能爲oncreateView()方法)。然後,您可以在父Activity中使用ViewPager(可能帶有TabLayout)來使用所有這些片段。因此,您的活動僅處理ViewPager的設置並將其餘部分留給碎片。

ViewPager一次顯示一個頁面,但它也可以初始化其他片段,甚至在它們被顯示之前。您可以使用ViewPager的setOffscreenPageLimit()方法來增加該範圍。

如果您需要片段與活動之間的通信渠道,您可以創建回調機制,如here所述。

相關問題