2014-12-04 39 views
0

developers guideAndroid Fragments Backstack:它是一堆碎片還是交易?

當您執行,這樣的片段交易,也可以將其添加到 回棧年代由活動 - 在 活動的每個回堆棧條目管理是的記錄發生的片段交易。通過按返回按鈕,返回堆棧允許用戶將反向分片交易(反向導航 )。

這是Backstackfragments一個stack或某種transaction記錄?

因爲如果它是一個fragmentsstackfragment移除(這意味着飛出backstack我想的),怎麼會背導航加回其彈出的stack的片段?

在同一文檔中後來的後來,

流行片段斷背棧,與popBackStack()...

這給了想法,它是fragmentstack S'

那麼Fragmentbackstackstack包含片段或事務記錄? 如果是前者,那麼在返航時如何撤消交易?

回答

2

這是Backstack堆棧的碎片還是某種事務記錄?

A stack的片段。

如果是前者,那麼在返回導航時如何移除事務?

Fragment S,你可以片段添加到BackStack(它喜歡它在activity的情況下發生的不是自動添加到BackStack) - 你在刪除之前做的選項fragment

一個Fragment添加到BackStack只有當你明確要求通過交易其刪除片段中調用addToBackStack()

這樣,它將被添加到後臺堆棧,並且當用戶向後導航時,最後添加的片段將出現在後臺堆棧的頂部。

1

我想你可能只是讀這個太多了。

是的,backstack是一個stack的片段。當你開始一個新的活動或提交一個片段事務時,你要離開的那個將默認添加到堆棧中。通過這種方式,您可以創建您經歷過的片段的按時間順序排列的列表。

您提供的引用意味着什麼時候它說「活動中的每個後退堆棧條目是發生的片段事務的記錄」是每個新片段都添加到片段事務中,因此您有一堆前一個從某種意義上來說,這些片斷就是你去過的東西的記錄。

在後退導航上,一個片段從堆疊中彈出並放回屏幕上,實際上可以讓您向後移動到您來自的位置。

+0

謝謝,但假設用戶關閉了一個對話框片段。那麼發生了什麼,對話框片段是從堆棧中彈出的? – Solace 2014-12-04 03:51:49

+1

你可以在這裏閱讀:http://developer.android.com/reference/android/app/DialogFragment.html只需按Ctrl + F鍵入「返回棧」 - 我會解釋它,但它更容易閱讀從源頭上而不是讓我解釋它。 – 2014-12-04 04:36:15