🍏

[Kotlin]navigationでの戻るボタン制御

2022/04/30に公開

概要

FragmentContainerViewnavigationでの画面遷移を管理している際、
端末の戻るボタンの制御をどうするべきか整理しました。

実装

公式に適切な処理の記載があります。

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
    }
}

https://developer.android.com/guide/navigation/navigation-custom-back

理想は・・

FragmentContainerViewを表示しているActivityで、
このActivityのnavigationの場合はなど、
戻るボタン押下の場合は一律で、
popBackしてくれるような書き方が出来たら良いなと思うんですが、
Activity内のonBackPressed()で書く訳にもいかない気がするので、
各Fragment内でaddCallbackを記載するしか無いのかもしれません。

Discussion