🍏
[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