NavHostを設定する
Composeでナビゲーショングラフを定義します
「NavHostを設定する」はCoddyKit上の無料Android Academyレッスンです。 これはレッスン1/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはAndroid Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Android Academyコースには全4レッスンが含まれています。
画面間の移動
ほとんどのアプリには複数の画面があります。Navigation Compose ライブラリを使うと、バックスタックを維持しながら Composable 画面間を移動できます。
依存関係
ナビゲーションライブラリを Gradle ファイルに追加すると、NavController、NavHost、各種ヘルパーを使えるようになります。
// build.gradle (module)
implementation("androidx.navigation:navigation-compose:2.7.0")NavController
NavController はナビゲーションを実行し、バックスタックを記憶するオブジェクトです。rememberNavController() で作成します。
val navController = rememberNavController()NavHost
NavHost は現在の遷移先を表示する Composable です。コントローラーと startDestination ルートが必要です。
NavHost(
navController = navController,
startDestination = "home"
) {
// destinations go here
}遷移先の定義
NavHost の lambda 内で、各画面を composable("route") で宣言します。この文字列が遷移先のルートです。
composable("home") {
HomeScreen()
}ルートは文字列
route は、URL パスのような、遷移先を一意に識別する文字列 ID です。ルートを指定して移動すると、NavHost が一致する Composable を表示します。
2 画面のグラフ
2 つの遷移先を持つ、最小限のナビゲーショングラフです。"home" が最初に表示されるのは、startDestination だからです。
NavHost(navController, startDestination = "home") {
composable("home") { HomeScreen() }
composable("details") { DetailsScreen() }
}startDestination
startDestination はユーザーに最初に表示される画面であり、バックスタックのルートです。アプリはそこより先に戻ることはできません。
コントローラーの受け渡し
ナビゲーションを開始する画面には NavController が必要です。パラメーターとして渡すこともできますが、画面を再利用しやすくするには、onContinue のような単純な lambda を渡す方法がおすすめです。
composable("home") {
HomeScreen(onOpenDetails = {
navController.navigate("details")
})
}領域ごとに 1 つの NavHost
通常は、アプリの最上位に NavHost を 1 つだけ配置します。コントローラーは rememberNavController() で一度だけ作成し、すべての遷移先で共有します。
まとめ
コントローラー、ホスト、2 つの遷移先を含む完全な構成です。
@Composable
fun App() {
val navController = rememberNavController()
NavHost(
navController = navController,
startDestination = "home"
) {
composable("home") { HomeScreen() }
composable("details") { DetailsScreen() }
}
}クイックチェック
バックスタックを記憶し、ナビゲーションを実行するオブジェクトはどれですか?
まとめ
ナビゲーションの設定:
rememberNavController()でコントローラーを作成します。NavHostが遷移先を表示し、startDestinationが必要です。composable("route")で画面を宣言します。ルートは一意の文字列です。
よくある質問
「NavHostを設定する」レッスンは無料ですか?
はい。「NavHostを設定する」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Android Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Android Academyコースには全4レッスンが含まれています。
「NavHostを設定する」で何を学びますか?
Composeでナビゲーショングラフを定義します ブラウザで直接実行するハンズオンコードでAndroid Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
Android Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのAndroid Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン1/4です。
「NavHostを設定する」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このAndroid Academyレッスンでコードを書いて実行できますか?
はい。すべてのAndroid Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- NavHostを設定する
- 画面間を移動する
- 引数を渡す
- ボトムナビゲーション