2017-10-13 55 views
4

我對FragmentManager背後的基本原理有些困惑。FragmentManager backstack

假設一個活動有兩個容器用於放置不同的碎片:問題是,當使用碎片事務將碎片添加到兩個容器時,無論正在使用哪個容器,堆棧的數量都會增加。

這對我來說沒有任何意義。 如果這不是在Android的做推廣的方式,那麼我們怎樣才能獨立管理在同一個活動2個backstacks(有每個活動只有一個FragmentManager)?
我可能只是缺少明顯的東西在這裏。

+1

你不會錯過任何東西,儘管Google一直在努力處理它們,但碎片仍然是今天仍然是糟糕的決定。 「事情是有某種生命週期的,但不是活動的小品」。 –

回答

0

片段是附加到一個活動和不應該知道彼此的片段和該通信應通過一個活動的模塊。

片段由活動提供的FragmentManager進行管理,每個片段由action such as add, remove, or replace a fragment are provided through a FragmentTransaction組成,每個活動只有一個可用的backstack。因此,正如@hackbod said at this post

您只需要實現自己的單獨後退堆棧,或者您可以使用FragmentTransaction.detach進行管理。