FragmentTransaction.attach

FragmentTransaction.attachは、FragmentTransaction.detachとは逆に、FragmentとViewを再び紐づける。

FragmentTransaction  |  Android Developers

まあ、Viewの再生成だよね。
activity_main.xmlで、

Buttonを3つに増やしている。
(strings.xmlはもう省略。)
MainActivity.javaで、

Button3でattachしている。

起動時
起動時

起動時。

onCreateViewなのでView生成
onCreateViewなのでView生成

onCreateViewなのでView生成。

この時点でButton2押したら、viewはnullではない。
この時点でButton2押したら、viewはnullではない。

この時点でButton2押したら、viewはnullではない。

Button1でdetach
Button1でdetach

Button1でdetach。
TextViewが消えてます。

onDestroyViewだけ
onDestroyViewだけ

onDestroyViewだけ。

Button2を押して、nullになってるのも確認。
Button2を押して、nullになってるのも確認。

Button2を押して、nullになってるのも確認。

Button3を押すと、Fragment1のViewであるTextView"Fragment1"が復活。
Button3を押すと、Fragment1のViewであるTextView"Fragment1"が復活。

Button3を押すと、Fragment1のViewであるTextView"Fragment1"が復活。

またonCreateViewが呼ばれている。
またonCreateViewが呼ばれている。

またonCreateViewが呼ばれている。

Button2でviewがnullでないのも確認した
Button2でviewがnullでないのも確認した

Button2でviewがnullでないのも確認した。

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