Skip to main content

JetpackComposeでNavigationを実装した

今回はJetpackComposeで画面遷移として
Navigationを実施したときに学んだことをまとめる


・ナビゲーションの遷移
rememberNavController()して
NavHostに開始位置とコントローラーを渡す
画面遷移はコントローラーを使ってnavigateメソッドを呼ぶ
https://qiita.com/shxun6934/items/5301b69a85df98e30983
https://developer.android.com/jetpack/compose/navigation?hl=ja

・ナビゲーションで囲う位置
NavHostの中だけ変更対象になる
そのため、ツールバーも変更するならツールバーも含んだ形でNavHostで囲う
ツールバーは同じならツールバーの中だけNavHostで囲う
https://zenn.dev/chibatching/scraps/34c3ad161b8b4b

 

・java.lang.IllegalArgumentException: CreationExtras must have a value by `SAVED_STATE_REGISTRY_OWNER_KEY
androidx.navigation:navigation-compose
を入れれば解消する
https://stackoverflow.com/questions/73302605/creationextras-must-have-a-value-by-saved-state-registry-owner-key

 

・activityへの遷移
以下でできる
https://qiita.com/Nabe1216/items/06ab38ec3f6446abdc4b

acitivity(desti String) {
    acitivityClass = hogehoge::class
}

以下はdeprecatedだから注意
‘activity(Int, ActivityNavigatorDestinationBuilder.() -> Unit): Unit’ is deprecated. Use routes to build your ActivityDestination instead

acitivity(id=R.id.hogehoge)

関連記事:

Pocket