標籤:android for cti on c ad r as tt
1、remove,add,replace
remove:移除fragment,被移除的fragment會銷毀掉,包括執行個體和介面。
add:
add(int containerViewId, Fragment fragment)
Calls add(int, Fragment, String) with a null tag.
add(Fragment fragment, String tag)
Calls add(int, Fragment, String) with a 0 containerViewId.
add(int containerViewId, Fragment fragment, String tag)
Add a fragment to the activity state.
replace:等同於remove+add。
說明:往同一個containerViewId中replace會移除掉舊的fragment,包括執行個體和介面,然後add新的fragment,只會有一個fragment存在。
add會往同一個containerViewId中添加多個fragment,包括執行個體和介面,後加進去的會疊加在前面的fragment的上面,可以有多個fragment存在。
2、backstack fragment的後退棧
在調用add或者replace方法之後,調用commit方法之前加上addToBackStack會將當前的fragment加入到backstack。
說明:在調用replace方法前,如果某個fragment已加入到後退棧,然後這個時候調用replace被別的fragment替換了,此fragment也就銷毀了,但是
還是可以按返回鍵從後退棧中彈出,其實也就是說fragment和後退棧中的fragment不是一回事。
3、清空backstack方法
popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE)。
public static final int POP_BACK_STACK_INCLUSIVE
Added in API level 11
Flag for popBackStack(String, int) and popBackStack(int, int): If set, and the name or ID of a back stack entry has been supplied, then all matching entries will be consumed until one that doesn‘t match is found or the bottom of the stack is reached. Otherwise, all entries up to but not including that entry will be removed.
Android Fragment小記