天天看點

FragmentTransation中的remove和detach有什麼差別?

remove():

從Activity中移除一個Fragment,如果被移除的Fragment沒有添加到回退棧(回退棧後面會詳細說),這個Fragment執行個體将會被銷毀;

detach():

會将view從UI中移除,和remove()不同,此時fragment的狀态依然由FragmentManager維護。

remove和detach有一點細微的差別,在不考慮回退棧的情況下,remove會銷毀整個Fragment執行個體,而detach則隻是銷毀其視圖結構,執行個體并不會被銷毀。那麼二者怎麼取舍使用呢?如果你的目前Activity一直存在,那麼在不希望保留使用者操作的時候,你可以優先使用detach。

繼續閱讀