1. 程式人生 > >Android Fragment add/replace以及backstack

Android Fragment add/replace以及backstack

無論Fragment以何種方式加入,都不會影響backstack,backstack由addToBackStack函式決定,只有呼叫了這個函式,才會將Fragment加入返回棧。這個說法其實不太準確,返回棧記錄的是Fragment切換的過程,所以加入返回棧的是Transaction,而不是Fragment本身。

那麼add和replace的區別是什麼呢?

以add方式加入Fragment,底層的Fragment被覆蓋,當按下返回鍵時,當前Fragment彈出返回棧,底層Fragment直接顯示出來,無需重建。

以replace方式加入Fragment,底層Fragment被替換(replace嘛),當按下返回鍵時,當前Fragment彈出返回棧,底層Fragment需要重建。然後再顯示出來。