🍏
[Kotlin]navigationでの戻るボタン制御
概要
FragmentContainerViewでnavigationでの画面遷移を管理している際、
端末の戻るボタンの制御をどうするべきか整理しました。
実装
公式に適切な処理の記載があります。
class MyFragment : Fragment() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// This callback will only be called when MyFragment is at least Started.
val callback = requireActivity().onBackPressedDispatcher.addCallback(this) {
// Handle the back button event
}
// The callback can be enabled or disabled here or in the lambda
}
}
理想は・・
FragmentContainerViewを表示しているActivityで、
このActivityのnavigationの場合はなど、
戻るボタン押下の場合は一律で、
popBackしてくれるような書き方が出来たら良いなと思うんですが、
Activity内のonBackPressed()で書く訳にもいかない気がするので、
各Fragment内でaddCallbackを記載するしか無いのかもしれません。
Discussion