Android Fragment add/replace以及backstack

不管Fragment以何种方式加入,都不会影响backstack,backstack由addToBackStack函数决定,只有调用了这个函数,才会将Fragment加入返回栈。这个说法其实不太准确,返回栈记录的是Fragment切换的过程,因此加入返回栈的是Transaction,而不是Fragment自己。函数

那么add和replace的区别是什么呢?io

以add方式加入Fragment,底层的Fragment被覆盖,当按下返回键时,当前Fragment弹出返回栈,底层Fragment直接显示出来,无需重建。底层

以replace方式加入Fragment,底层Fragment被替换(replace嘛),当按下返回键时,当前Fragment弹出返回栈,底层Fragment须要重建。而后再显示出来。

相关文章
相关标签/搜索