読者です 読者をやめる 読者になる 読者になる

FragmentTransaction.show

複数のフラグメントをaddした後のフラグメント表示の切り替えに関してはshowとhideを使って切り替える・・・。

FragmentTransaction | Android Developers

追加した後は、削除されない限り、ライフサイクルに変化がないので、showやhideで表示と非表示を繰り返しても画面の状態は維持されるようだ・・・。

Menuは3つに減らした・・・。

strings.xmlもそれに合わせる・・・。

findFragmentByTagで"tag1"の付いたf1が見つかった場合、fragmentTransaction.showでf1を表示・・・。

これで他のFragmentが非表示になってくれればいいのだが、どうもそうではないようなので、

"tag2"の付いたf2、"tag3"の付いたf3をhideで非表示にする・・・。

FragmentTransaction | Android Developers

("tag2", "tag3"が見つからなければ、元から追加されてないので何もする必要は無い・・・。)

Menu2の場合は、f2をshow、f1とf3をhide・・・。

Menu3の場合は、f3をshow、f1とf2をhide・・・。

f:id:BG1:20160918164938p:plain

Menu1を選択・・・。

f:id:BG1:20160918164955p:plain

赤い"tag1"がaddされた・・・。

f:id:BG1:20160918165028p:plain

Menu2を選択・・・。

f:id:BG1:20160918165108p:plain

緑の"tag2"がaddされた・・・。

f:id:BG1:20160918165250p:plain

Menu3を選択・・・。

f:id:BG1:20160918165308p:plain

青の"tag3"がaddされた・・・。

f:id:BG1:20160918165634p:plain

再びMenu1を選択・・・。

f:id:BG1:20160918165658p:plain

既にaddされた"tag1"がshowで再表示・・・。"tag2", "tag3"はhideで非表示・・・。
どのハンドラも呼ばれてないのでライフサイクルが変化していないのがわかる・・・。

f:id:BG1:20160918165934p:plain

Menu2で、

f:id:BG1:20160918165948p:plain

"tag2"だけ表示・・・。

f:id:BG1:20160918170018p:plain

Menu3で、

f:id:BG1:20160918170034p:plain

"tag3"だけ表示・・・。

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