画面間を移動する
遷移先の間を進んだり戻ったりします
「画面間を移動する」はCoddyKit上の無料Android Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはAndroid Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Android Academyコースには全4レッスンが含まれています。
次へ進む
NavHostを設定したら、移動先のルートを指定してNavControllerのnavigateを呼び出すことで、別の画面へ移動できます。
navController.navigate("details")ボタンからの実行
ナビゲーションは通常、ボタンのonClickなどのコールバック内で実行します。
Button(onClick = { navController.navigate("details") }) {
Text("Open details")
}バックスタック
navigateを呼び出すたびに、新しい遷移先がバックスタックに追加されます。システムの戻るボタンを押すと、自動的にその遷移先が取り除かれ、前の画面に戻ります。
popBackStack
プログラムから前の画面に戻るには(カスタムの「Up」ボタンから戻る場合など)、popBackStackを呼び出します。現在の遷移先が取り除かれ、前の遷移先に戻ります。
navController.popBackStack()navigateUp
navigateUp()も似た動作をしますが、ツールバーのUp矢印にはこちらが適しています。ナビゲーション階層に従って動作します。
navController.navigateUp()遷移先の重複を避ける
ボタンをすばやく2回タップすると、同じ画面が2回追加されることがあります。launchSingleTop = trueを使うと、遷移先の重複したコピーがスタックに積まれるのを防げます。
navController.navigate("details") {
launchSingleTop = true
}popUpTo
popUpToを使うと、ナビゲーション中にバックスタックの一部をクリアできます。ログイン後にホームへ移動し、戻るボタンでログイン画面に戻れないようにする場合などに便利です。
navController.navigate("home") {
popUpTo("login") { inclusive = true }
}inclusive
inclusive = trueにすると、popUpToの対象も同時に取り除かれます。inclusive = falseの場合は、その対象の直前までが取り除かれます。
画面を疎結合に保つ
各画面にNavController全体を渡す代わりに、ラムダを渡します。画面はonOpenDetails()を呼び出すだけで、ナビゲーションの内部実装を知る必要がありません。
@Composable
fun HomeScreen(onOpenDetails: () -> Unit) {
Button(onClick = onOpenDetails) { Text("Details") }
}ラムダを接続する
NavHostでラムダを実際のnavigate呼び出しに接続すると、ナビゲーションロジックを1か所にまとめられます。
composable("home") {
HomeScreen(onOpenDetails = {
navController.navigate("details")
})
}全体を組み合わせる
ホーム画面から詳細画面へ移動し、詳細画面からはUp矢印で戻ります。
composable("home") {
HomeScreen(onOpenDetails = { navController.navigate("details") })
}
composable("details") {
DetailsScreen(onBack = { navController.popBackStack() })
}理解度チェック
プログラムから前の画面に戻るには、どの呼び出しを使いますか。
まとめ
ナビゲーション:
navigate("route")は遷移先を追加します。popBackStack()/navigateUp()で前の画面に戻ります。launchSingleTopとpopUpTo { inclusive }を使ってスタックを制御します。- 画面を再利用しやすくするため、コントローラーではなくラムダを渡します。
AI チューターと学ぶ Kotlin — 無料
ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。
- コース
- 36
- レッスン
- 152
よくある質問
「画面間を移動する」レッスンは無料ですか?
はい。「画面間を移動する」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Android Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Android Academyコースには全4レッスンが含まれています。
「画面間を移動する」で何を学びますか?
遷移先の間を進んだり戻ったりします ブラウザで直接実行するハンズオンコードでAndroid Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Android Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのAndroid Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「画面間を移動する」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このAndroid Academyレッスンでコードを書いて実行できますか?
はい。すべてのAndroid Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- NavHostを設定する
- 画面間を移動する
- 引数を渡す
- ボトムナビゲーション