рдиреЗрд╕реНрдЯ рдХрд┐рдП рдЧрдП рдЧреНрд░рд╛рдлрд╝

рдЖрдкрдХреЗ рдРрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рд▓реЙрдЧрд┐рди рдлрд╝реНрд▓реЛ, рд╡рд┐рдЬрд╝рд░реНрдб рдпрд╛ рдЕрдиреНрдп рд╕рдмрдлрд╝реНрд▓реЛ рдХреЛ рдЖрдо рддреМрд░ рдкрд░ рдиреЗрд╕реНрдЯ рдХрд┐рдП рдЧрдП рдиреЗрд╡рд┐рдЧреЗрд╢рди рдЧреНрд░рд╛рдлрд╝ рдХреЗ рддреМрд░ рдкрд░ рд╕рдмрд╕реЗ рд╕рд╣реА рддрд░реАрдХреЗ рд╕реЗ рджрд┐рдЦрд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ. рдЗрд╕ рддрд░рд╣ рд╕реЗ, рд╕рдмрдиреЗрд╡рд┐рдЧреЗрд╢рди рдХреЗ рдлрд╝реНрд▓реЛ рдХреЛ рдиреЗрд╕реНрдЯ рдХрд░рдиреЗ рд╕реЗ, рдЖрдкрдХреЗ рдРрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдпреВрдЬрд╝рд░ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ (рдпреВрдЖрдИ) рдХреЗ рдореБрдЦреНрдп рдлрд╝реНрд▓реЛ рдХреЛ рд╕рдордЭрдирд╛ рдФрд░ рдореИрдиреЗрдЬ рдХрд░рдирд╛ рдЖрд╕рд╛рди рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ.

рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдиреЗрд╕реНрдЯ рдХрд┐рдП рдЧрдП рдЧреНрд░рд╛рдлрд╝ рдХреЛ рдлрд┐рд░ рд╕реЗ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ. рдпреЗ рдЗрдирдХреИрдкреНрд╕реБрд▓реЗрд╢рди рдХрд╛ рдПрдХ рд▓реЗрд╡рд▓ рднреА рдЙрдкрд▓рдмреНрдз рдХрд░рд╛рддреЗ рд╣реИрдВ. рдиреЗрд╕реНрдЯ рдХрд┐рдП рдЧрдП рдЧреНрд░рд╛рдлрд╝ рд╕реЗ рдмрд╛рд╣рд░ рдХреЗ рдбреЗрд╕реНрдЯрд┐рдиреЗрд╢рди рдХреЗ рдкрд╛рд╕, рдиреЗрд╕реНрдЯ рдХрд┐рдП рдЧрдП рдЧреНрд░рд╛рдлрд╝ рдХреЗ рдХрд┐рд╕реА рднреА рдбреЗрд╕реНрдЯрд┐рдиреЗрд╢рди рдХрд╛ рд╕реАрдзрд╛ рдРрдХреНрд╕реЗрд╕ рдирд╣реАрдВ рд╣реЛрддрд╛. рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рдЙрдиреНрд╣реЗрдВ рдиреЗрд╕реНрдЯ рдХрд┐рдП рдЧрдП рдЧреНрд░рд╛рдлрд╝ рдореЗрдВ navigate() рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП. рдЗрд╕рд╕реЗ, рдЧреНрд░рд╛рдлрд╝ рдХреЗ рдмрд╛рдХреА рд╣рд┐рд╕реНрд╕реЗ рдкрд░ рдЕрд╕рд░ рдбрд╛рд▓реЗ рдмрд┐рдирд╛, рдЗрдВрдЯрд░рдирд▓ рд▓реЙрдЬрд┐рдХ рдореЗрдВ рдмрджрд▓рд╛рд╡ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ.

рдЙрджрд╛рд╣рд░рдг

рдЖрдкрдХреЗ рдРрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдЯреЙрдк-рд▓реЗрд╡рд▓ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдЧреНрд░рд╛рдлрд╝, рдЙрд╕ рд╢реБрд░реБрдЖрддреА рдбреЗрд╕реНрдЯрд┐рдиреЗрд╢рди рд╕реЗ рд╢реБрд░реВ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдРрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдкрд░ рджрд┐рдЦрддрд╛ рд╣реИ. рд╕рд╛рде рд╣реА, рдЗрд╕рдореЗрдВ рд╡реЗ рдбреЗрд╕реНрдЯрд┐рдиреЗрд╢рди рд╢рд╛рдорд┐рд▓ рд╣реЛрдиреЗ рдЪрд╛рд╣рд┐рдП рдЬреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдРрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░рддреЗ рд╕рдордп рджрд┐рдЦрддреЗ рд╣реИрдВ.

рдкрд╣рд▓реА рдЗрдореЗрдЬ. рдЯреЙрдк-рд▓реЗрд╡рд▓ рдХрд╛ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдЧреНрд░рд╛рдлрд╝.

рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдорд╛рди рд▓реЗрдВ рдХрд┐ рдЖрдкрдХреЛ рдпрд╣ рдЬрд╝рд░реВрд░реА рдХрд░рдирд╛ рд╣реИ рдХрд┐ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рд╕рд┐рд░реНрдлрд╝ рдкрд╣рд▓реА рдмрд╛рд░ рдРрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдкрд░, рдлрд╝рд┐рдЧрд░ 1 рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рдЯреЙрдк-рд▓реЗрд╡рд▓ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдЧреНрд░рд╛рдлрд╝ рдореЗрдВ рдореМрдЬреВрдж title_screen рдФрд░ register рд╕реНрдХреНрд░реАрди рджрд┐рдЦреЗрдВ. рдЗрд╕рдХреЗ рдмрд╛рдж, рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреА рдЬрд╛рдирдХрд╛рд░реА рд╕реЗрд╡ рд╣реЛ рдЬрд╛рддреА рд╣реИ. рдРрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рдмрд╛рдж рдореЗрдВ рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдкрд░, рдЖрдкрдХреЛ рдЙрдиреНрд╣реЗрдВ рд╕реАрдзреЗ рдореИрдЪ рд╕реНрдХреНрд░реАрди рдкрд░ рд▓реЗ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП.

рд╕рдмрд╕реЗ рд╕рд╣реА рддрд░реАрдХрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдореИрдЪ рд╕реНрдХреНрд░реАрди рдХреЛ рдЯреЙрдк-рд▓реЗрд╡рд▓ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдЧреНрд░рд╛рдлрд╝ рдХрд╛ рд╕реНрдЯрд╛рд░реНрдЯ рдбреЗрд╕реНрдЯрд┐рдиреЗрд╢рди рдХреЗ рддреМрд░ рдкрд░ рд╕реЗрдЯ рдХрд░реЗрдВ. рд╕рд╛рде рд╣реА, рдЯрд╛рдЗрдЯрд▓ рдФрд░ рд░рдЬрд┐рд╕реНрдЯрд░ рд╕реНрдХреНрд░реАрди рдХреЛ рдиреЗрд╕реНрдЯ рдХрд┐рдП рдЧрдП рдЧреНрд░рд╛рдлрд╝ рдореЗрдВ рд▓реЗ рдЬрд╛рдПрдВ. рдЬреИрд╕рд╛ рдХрд┐ рдкрд╣рд▓реЗ рдлрд╝рд┐рдЧрд░ рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ:

рджреВрд╕рд░реА рдЗрдореЗрдЬ. рдЯреЙрдк-рд▓реЗрд╡рд▓ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдЧреНрд░рд╛рдлрд╝ рдореЗрдВ рдЕрдм рдиреЗрд╕реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдЧреНрд░рд╛рдлрд╝ рд╢рд╛рдорд┐рд▓ рд╣реИ.

рдореИрдЪ рд╕реНрдХреНрд░реАрди рд▓реЙрдиреНрдЪ рд╣реЛрдиреЗ рдкрд░, рджреЗрдЦреЗрдВ рдХрд┐ рдХреЛрдИ рд░рдЬрд┐рд╕реНрдЯрд░реНрдб рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ. рдЕрдЧрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдиреЗ рд░рдЬрд┐рд╕реНрдЯрд░ рдирд╣реАрдВ рдХрд┐рдпрд╛ рд╣реИ, рддреЛ рдЙрд╕реЗ рд░рдЬрд┐рд╕реНрдЯреНрд░реЗрд╢рди рд╕реНрдХреНрд░реАрди рдкрд░ рд▓реЗ рдЬрд╛рдПрдВ.

рдиреЗрд╡рд┐рдЧреЗрд╢рди рдХреЗ рдЦрд╛рд╕ рд╢рд░реНрддреЛрдВ рд╡рд╛рд▓реЗ рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЬрд╝реНрдпрд╛рджрд╛ рдЬрд╛рдирдиреЗ рдХреЗ рд▓рд┐рдП, рдЦрд╛рд╕ рд╢рд░реНрддреЛрдВ рдХреЗ рд╕рд╛рде рдиреЗрд╡рд┐рдЧреЗрд╢рди рд▓реЗрдЦ рдкрдврд╝реЗрдВ.

Compose

Compose рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рдХреЗ рдиреЗрд╕реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдЧреНрд░рд╛рдлрд╝ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, NavGraphBuilder.navigation() рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░реЗрдВ. рдЧреНрд░рд╛рдлрд╝ рдореЗрдВ рдбреЗрд╕реНрдЯрд┐рдиреЗрд╢рди рдЬреЛрдбрд╝рддреЗ рд╕рдордп, navigation() рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ NavGraphBuilder.composable() рдФрд░ NavGraphBuilder.dialog() рдлрд╝рдВрдХреНрд╢рди рдХреА рддрд░рд╣ рд╣реА рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ.

рдЗрди рджреЛрдиреЛрдВ рдореЗрдВ рдореБрдЦреНрдп рдЕрдВрддрд░ рдпрд╣ рд╣реИ рдХрд┐ navigation рд╕реЗ, рдирдП рдбреЗрд╕реНрдЯрд┐рдиреЗрд╢рди рдХреЗ рдмрдЬрд╛рдп рдиреЗрд╕реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдЧреНрд░рд╛рдлрд╝ рдмрдирддрд╛ рд╣реИ. рдЗрд╕рдХреЗ рдмрд╛рдж, рдиреЗрд╕реНрдЯ рдХрд┐рдП рдЧрдП рдЧреНрд░рд╛рдлрд╝ рдореЗрдВ рдбреЗрд╕реНрдЯрд┐рдиреЗрд╢рди рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП, navigation() рдХреЗ рд▓реИрдВрдмрдбрд╛ рдлрд╝рдВрдХреНрд╢рди рдореЗрдВ composable() рдФрд░ dialog() рдХреЛ рдХреЙрд▓ рдХрд░реЗрдВ.

рдпрд╣рд╛рдВ рджрд┐рдП рдЧрдП рд╕реНрдирд┐рдкреЗрдЯ рдореЗрдВ, Compose рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рдХреЗ рджреВрд╕рд░реА рдЗрдореЗрдЬ рдореЗрдВ рджрд┐рдЦрд╛рдП рдЧрдП рдЧреНрд░рд╛рдлрд╝ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ:

// Routes
@Serializable object Title
@Serializable object Register

// Route for nested graph
@Serializable object Game

// Routes inside nested graph
@Serializable object Match
@Serializable object InGame
@Serializable object ResultsWinner
@Serializable object GameOver

NavHost(navController, startDestination = Title) {
   composable<Title> {
       TitleScreen(
           onPlayClicked = { navController.navigate(route = Register) },
           onLeaderboardsClicked = { /* Navigate to leaderboards */ }
       )
   }
   composable<Register> {
       RegisterScreen(
           onSignUpComplete = { navController.navigate(route = Game) }
       )
   }
   navigation<Game>(startDestination = Match) {
       composable<Match> {
           MatchScreen(
               onStartGame = { navController.navigate(route = InGame) }
           )
       }
       composable<InGame> {
           InGameScreen(
               onGameWin = { navController.navigate(route = ResultsWinner) },
               onGameLose = { navController.navigate(route = GameOver) }
           )
       }
       composable<ResultsWinner> {
           ResultsWinnerScreen(
               onNextMatchClicked = {
                   navController.navigate(route = Match) {
                       popUpTo(route = Match) { inclusive = true }
                   }
               },
               onLeaderboardsClicked = { /* Navigate to leaderboards */ }
           )
       }
       composable<GameOver> {
           GameOverScreen(
               onTryAgainClicked = {
                   navController.navigate(route = Match) {
                       popUpTo(route = Match) { inclusive = true }
                   }
               }
           )
       }
   }
}

рдХрд┐рд╕реА рдиреЗрд╕реНрдЯ рдХрд┐рдП рдЧрдП рдбреЗрд╕реНрдЯрд┐рдиреЗрд╢рди рдкрд░ рд╕реАрдзреЗ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХрд┐рд╕реА рднреА рдЕрдиреНрдп рдбреЗрд╕реНрдЯрд┐рдиреЗрд╢рди рдХреА рддрд░рд╣ рд░реВрдЯ рдЯрд╛рдЗрдк рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░реЗрдВ. рдРрд╕рд╛ рдЗрд╕рд▓рд┐рдП рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рд░реВрдЯ рдПрдХ рдЧреНрд▓реЛрдмрд▓ рдХреЙрдиреНрд╕реЗрдкреНрдЯ рд╣реИ. рдЗрд╕рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдЙрди рдбреЗрд╕реНрдЯрд┐рдиреЗрд╢рди рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рди рдкрд░ рдХреЛрдИ рднреА рд╕реНрдХреНрд░реАрди рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░ рд╕рдХрддреА рд╣реИ:

navController.navigate(route = Match)
рд▓реЗрдЦ рдкрдврд╝реЗрдВ

XML

рдПрдХреНрд╕рдПрдордПрд▓ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рддреЗ рд╕рдордп, рдиреЗрд╕реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдЧреНрд░рд╛рдлрд╝ рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдиреЗрд╡рд┐рдЧреЗрд╢рди рдПрдбрд┐рдЯрд░ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ. рдЗрд╕рдХреЗ рд▓рд┐рдП, рдпрд╣ рддрд░реАрдХрд╛ рдЕрдкрдирд╛рдПрдВ:

  1. рдиреЗрд╡рд┐рдЧреЗрд╢рди рдПрдбрд┐рдЯрд░ рдореЗрдВ, Shift рдмрдЯрди рдХреЛ рджрдмрд╛рдХрд░ рд░рдЦреЗрдВ. рдЗрд╕рдХреЗ рдмрд╛рдж, рдЙрди рдбреЗрд╕реНрдЯрд┐рдиреЗрд╢рди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдЖрдкрдХреЛ рдиреЗрд╕реНрдЯ рдХрд┐рдП рдЧрдП рдЧреНрд░рд╛рдлрд╝ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рд╣реИ.
  2. рд╕рдВрджрд░реНрдн рдореЗрдиреНрдпреВ рдЦреЛрд▓рдиреЗ рдХреЗ рд▓рд┐рдП, рд░рд╛рдЗрдЯ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ. рдЗрд╕рдХреЗ рдмрд╛рдж, рдиреЗрд╕реНрдЯ рдХрд┐рдП рдЧрдП рдЧреНрд░рд╛рдлрд╝ рдореЗрдВ рд▓реЗ рдЬрд╛рдПрдВ > рдирдпрд╛ рдЧреНрд░рд╛рдлрд╝ рдЪреБрдиреЗрдВ. рдбреЗрд╕реНрдЯрд┐рдиреЗрд╢рди, рдиреЗрд╕реНрдЯ рдХрд┐рдП рдЧрдП рдЧреНрд░рд╛рдлрд╝ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рд╣реЛрддреЗ рд╣реИрдВ. рджреВрд╕рд░реА рдЗрдореЗрдЬ рдореЗрдВ, рдиреЗрд╡рд┐рдЧреЗрд╢рди рдПрдбрд┐рдЯрд░ рдореЗрдВ рдиреЗрд╕реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдЧреНрд░рд╛рдлрд╝ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ:

    рджреВрд╕рд░реА рдЗрдореЗрдЬ. рдиреЗрд╡рд┐рдЧреЗрд╢рди рдПрдбрд┐рдЯрд░ рдореЗрдВ рдиреЗрд╕реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдЧреНрд░рд╛рдлрд╝
  3. рдиреЗрд╕реНрдЯ рдХрд┐рдП рдЧрдП рдЧреНрд░рд╛рдлрд╝ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ. рдПрдЯреНрд░рд┐рдмреНрдпреВрдЯ рдкреИрдирд▓ рдореЗрдВ рдпреЗ рдПрдЯреНрд░рд┐рдмреНрдпреВрдЯ рджрд┐рдЦрддреЗ рд╣реИрдВ:

    • рдЯрд╛рдЗрдк, рдЬрд┐рд╕рдореЗрдВ "рдиреЗрд╕реНрдЯреЗрдб рдЧреНрд░рд╛рдлрд╝" рд╢рд╛рдорд┐рд▓ рд╣реИ
    • рдЖрдИрдбреА, рдЬрд┐рд╕рдореЗрдВ рдиреЗрд╕реНрдЯ рдХрд┐рдП рдЧрдП рдЧреНрд░рд╛рдлрд╝ рдХреЗ рд▓рд┐рдП рд╕рд┐рд╕реНрдЯрдо рд╕реЗ рдЕрд╕рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рдЖрдИрдбреА рд╣реЛрддрд╛ рд╣реИ. рдЗрд╕ рдЖрдИрдбреА рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓, рдЖрдкрдХреЗ рдХреЛрдб рд╕реЗ рдиреЗрд╕реНрдЯ рдХрд┐рдП рдЧрдП рдЧреНрд░рд╛рдлрд╝ рдХреЛ рд░реЗрдлрд╝рд░рдВрд╕ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ.
  4. рдбреЗрд╕реНрдЯрд┐рдиреЗрд╢рди рджрд┐рдЦрд╛рдиреЗ рдХреЗ рд▓рд┐рдП, рдиреЗрд╕реНрдЯ рдХрд┐рдП рдЧрдП рдЧреНрд░рд╛рдлрд╝ рдкрд░ рджреЛ рдмрд╛рд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ.

  5. рдПрдХреНрд╕рдПрдордПрд▓ рд╡реНрдпреВ рдкрд░ рдЯреЙрдЧрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЯреЗрдХреНрд╕реНрдЯ рдЯреИрдм рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ. рдЧреНрд░рд╛рдлрд╝ рдореЗрдВ рдиреЗрд╕реНрдЯ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдЧреНрд░рд╛рдлрд╝ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ. рдЗрд╕ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдЧреНрд░рд╛рдлрд╝ рдореЗрдВ, рдЗрд╕рдХреЗ рдЕрдкрдиреЗ navigation рдПрд▓рд┐рдореЗрдВрдЯ рдХреЗ рд╕рд╛рде-рд╕рд╛рде рдЗрд╕рдХрд╛ рдЕрдкрдирд╛ рдЖрдИрдбреА рдФрд░ рдПрдХ startDestination рдПрдЯреНрд░рд┐рдмреНрдпреВрдЯ рднреА рд╣реЛрддрд╛ рд╣реИ. рдпрд╣ рдиреЗрд╕реНрдЯ рдХрд┐рдП рдЧрдП рдЧреНрд░рд╛рдлрд╝ рдореЗрдВ рдкрд╣рд▓реЗ рдбреЗрд╕реНрдЯрд┐рдиреЗрд╢рди рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░рддрд╛ рд╣реИ:

    <?xml version="1.0" encoding="utf-8"?>
    <navigation xmlns:app="http://schemas.android.com/apk/res-auto"
       xmlns:tools="http://schemas.android.com/tools"
       xmlns:android="http://schemas.android.com/apk/res/android"
       app:startDestination="@id/mainFragment">
       <fragment
           android:id="@+id/mainFragment"
           android:name="com.example.cashdog.cashdog.MainFragment"
           android:label="fragment_main"
           tools:layout="@layout/fragment_main" >
           <action
               android:id="@+id/action_mainFragment_to_sendMoneyGraph"
               app:destination="@id/sendMoneyGraph" />
           <action
               android:id="@+id/action_mainFragment_to_viewBalanceFragment"
               app:destination="@id/viewBalanceFragment" />
       </fragment>
       <fragment
           android:id="@+id/viewBalanceFragment"
           android:name="com.example.cashdog.cashdog.ViewBalanceFragment"
           android:label="fragment_view_balance"
           tools:layout="@layout/fragment_view_balance" />
       <navigation android:id="@+id/sendMoneyGraph" app:startDestination="@id/chooseRecipient">
           <fragment
               android:id="@+id/chooseRecipient"
               android:name="com.example.cashdog.cashdog.ChooseRecipient"
               android:label="fragment_choose_recipient"
               tools:layout="@layout/fragment_choose_recipient">
               <action
                   android:id="@+id/action_chooseRecipient_to_chooseAmountFragment"
                   app:destination="@id/chooseAmountFragment" />
           </fragment>
           <fragment
               android:id="@+id/chooseAmountFragment"
               android:name="com.example.cashdog.cashdog.ChooseAmountFragment"
               android:label="fragment_choose_amount"
               tools:layout="@layout/fragment_choose_amount" />
       </navigation>
    </navigation>
    
  6. рдЕрдкрдиреЗ рдХреЛрдб рдореЗрдВ, рд░реВрдЯ рдЧреНрд░рд╛рдлрд╝ рдХреЛ рдиреЗрд╕реНрдЯ рдХрд┐рдП рдЧрдП рдЧреНрд░рд╛рдлрд╝ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рд╡рд╛рд▓реА рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд╛ рд╕рдВрд╕рд╛рдзрди рдЖрдИрдбреА рдкрд╛рд╕ рдХрд░реЗрдВ:

Kotlin

view.findNavController().navigate(R.id.action_mainFragment_to_sendMoneyGraph)

Java

Navigation.findNavController(view).navigate(R.id.action_mainFragment_to_sendMoneyGraph);
  1. рдбрд┐рдЬрд╝рд╛рдЗрди рдЯреИрдм рдореЗрдВ рд╡рд╛рдкрд╕ рдЬрд╛рдХрд░, рд░реВрдЯ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ рд░реВрдЯ рдЧреНрд░рд╛рдлрд╝ рдкрд░ рд╡рд╛рдкрд╕ рдЬрд╛рдПрдВ.

include рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рдХреЗ, рдЕрдиреНрдп рдиреЗрд╡рд┐рдЧреЗрд╢рди рдЧреНрд░рд╛рдлрд╝ рдХреЛ рд░реЗрдлрд╝рд░рдВрд╕ рдХрд░рдирд╛

рдЕрдкрдиреЗ рдЧреНрд░рд╛рдлрд╝ рд╕реНрдЯреНрд░рдХреНрдЪрд░ рдХреЛ рдореЙрдбреНрдпреВрд▓рд░ рдмрдирд╛рдиреЗ рдХрд╛ рдПрдХ рдФрд░ рддрд░реАрдХрд╛ рд╣реИ. рдЗрд╕рдХреЗ рд▓рд┐рдП, рдкреИрд░рдВрдЯ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдЧреНрд░рд╛рдлрд╝ рдореЗрдВ <include> рдПрд▓рд┐рдореЗрдВрдЯ рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рдХреЗ, рдПрдХ рдЧреНрд░рд╛рдлрд╝ рдХреЛ рджреВрд╕рд░реЗ рдЧреНрд░рд╛рдлрд╝ рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ. рдЗрд╕рд╕реЗ рд╢рд╛рдорд┐рд▓ рдХрд┐рдП рдЧрдП рдЧреНрд░рд╛рдлрд╝ рдХреЛ рдХрд┐рд╕реА рдЕрд▓рдЧ рдореЙрдбреНрдпреВрд▓ рдпрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рддрдп рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ. рдЗрд╕рд╕реЗ, рдЧреНрд░рд╛рдлрд╝ рдХреЛ рджреЛрдмрд╛рд░рд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рдиреЗ рдХреА рд╕реБрд╡рд┐рдзрд╛ рдорд┐рд▓рддреА рд╣реИ.

рдпрд╣рд╛рдВ рджрд┐рдП рдЧрдП рд╕реНрдирд┐рдкреЗрдЯ рдореЗрдВ, <include> рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рдиреЗ рдХрд╛ рддрд░реАрдХрд╛ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ:

<!-- (root) nav_graph.xml -->
<?xml version="1.0" encoding="utf-8"?>
<navigation xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/nav_graph"
    app:startDestination="@id/fragment">

    <include app:graph="@navigation/included_graph" />

    <fragment
        android:id="@+id/fragment"
        android:name="com.example.myapplication.BlankFragment"
        android:label="Fragment in Root Graph"
        tools:layout="@layout/fragment_blank">
        <action
            android:id="@+id/action_fragment_to_second_graph"
            app:destination="@id/second_graph" />
    </fragment>

    ...
</navigation>
<!-- included_graph.xml -->
<?xml version="1.0" encoding="utf-8"?>
<navigation xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/second_graph"
    app:startDestination="@id/includedStart">

    <fragment
        android:id="@+id/includedStart"
        android:name="com.example.myapplication.IncludedStart"
        android:label="fragment_included_start"
        tools:layout="@layout/fragment_included_start" />
</navigation>