FragmentTransaction.detach

FragmentTransaction.detachは、Fragmentから紐づく"View"を取り外す。

FragmentTransaction  |  Android Developers

Fragment.onDetachは、紐づく"Activity"との関係を解除した時に呼ばれるので、実は無関係。
ただ、今回はFragment.onDetachのコードをベースに、MainActivity.javaを、

こうする。
Button1でFragment1をdetach、Button2であらかじめ保存しておいたFragment1の参照mFragmentのgetViewがnullになるかをチェック。

起動時
起動時

起動時はこう。
この時にButton2を押しても、

viewはnullではない
viewはnullではない

viewはnullではない。
Button1を押すと、

中のTextViewが消えてる
中のTextViewが消えてる

中のTextViewが消えてる。
削除ではなくデタッチされただけ。

なのでonDestroyViewは呼ばれているが、onDestroy、onDetachは呼ばれない。
なのでonDestroyViewは呼ばれているが、onDestroy、onDetachは呼ばれない。

なのでonDestroyViewは呼ばれているが、onDestroy、onDetachは呼ばれない。
Button2を押すと、

viewがnullになってるのがわかる
viewがnullになってるのがわかる

viewがnullになってるのがわかる。

Sample/android/FragmentTransaction/detach/src/FragmentTransaction at master · bg1bgst333/Sample · GitHub