2012-09-12 16 views
3

我還沒有看到這個Android文檔。使用這個自動生成的標籤來引用viewPager中的片段是否安全?使用TAG`android:switcher:+ R.id.ot_pag_main +:0`來查找片段是否安全?

+0

標籤通常在適配器中的片段上調用'public void onCreate(Bundle savedInstanceState)'時可用。應該很容易在片段管理器中添加一個標記的虛擬片段,你可以從'#onCreate(..)'中獲得,並且通過調用分配給你的片段的標籤(通過調用##getTag() 。 – Jens

+0

@Jens,謝謝,我已經看到了您在評論中提到的實現。這實際上是我如何實現標籤是android:switcher ...我真的需要傳達片段,因爲一個片段中的變化也必須顯示在另一個片段中。我可能會使用LocalBroadcastManager。 –

回答

8

我不會推薦它,因爲這是PagerAdapter實施內部的私人數據。

您最好將FragmentPagerAdapter和/或FragmentStatePagerAdapter源文件複製到您的項目中(重構到您自己的軟件包中)。然後,不僅可以避免命名方案發生任何變化,還可以公開用於生成這些名稱的方法。

當然,不利的一面是,對這些PagerAdapter實現所做的改進將來將不會提供給您,除非您重複此過程。

+0

而且我認爲沒有經常引用這個標籤。我真的不明白。在viewPager中交換片段的最佳做法是什麼?即使我要通過承載它們的活動來完成它,活動如何通過FragmentManager在viewPager中獲取片段的實例? –

+2

@HéctorJúdezSapena:「在viewPager中交換片段的最佳實踐是什麼?」 - 使用標準的「PagerAdapter」實現,「最佳實踐」不是與片段進行通信。適配器將它們視爲完全擁有它們。這是考慮自己創建'PagerAdapter'的另一個原因,無論是標準分支還是您自己創建的全新分支。 「活動如何通過FragmentManager在viewPager中獲取片段的實例?」 - 他們不能,可靠,因爲標籤不知道,正如我們上面討論的。 – CommonsWare

+0

好的,謝謝!謝謝x2,因爲我的確從WakefulIntentService獲得了很多靈感。 –

相關問題