考察
ここまでで、2つの fragmentのそれぞれの画面上のボタンを押すことで、fragment間の遷移をし、戻るボタンで第一のfragmentに戻る処理を作つた。
そのなかで、予期せぬ fragmentの実体の複数回生成と、戻るボタンの非期待動作があり、とりあえずの解決をおこなつた。
考えへるに、本質的な問題は、
SecondFragmentが、MainFragmentに「遷移する」ボタンを持つてゐたこと
ではないか。
画面の遷移の設計のあるべき姿は、以下ではないかと考へる。
- 上流から下流へ流れ、
- その都度、下位の画面の fragmentを生成し、
- addToBackStackで遷移を積む。
- 逆に、下流から上流へは、戻るボタンで一段づつ戻り、
- BackStackの最新の遷移が取り除かれる。
- 例外的に最上流に戻る場合のみ、たとへば Homeボタンをしつらへ、BackStackを空にする。
Android Developperの Principles of Navigationのでは、あまり詳しくは書かれてゐないが、考へ方としては、そのやうである。
なほ、上記箇条書きしたあるべき姿の最後の項目を実現するには、以下のやうにするのか。
for (i = 0: i < supportFragmentManager.backStackEntryCount; i++){
supportFragmentManager.popBackStack(null, POP_BACK_STACK_INCLUSIVE)
}
まだまだ不明点がおほい。
(了)
0 件のコメント:
コメントを投稿