
рдЕрдиреБрд╡рд╛рджрдХ рд╕реЗ
рдирдорд╕реНрдХрд╛рд░, рд╣рдмреНрд╢рдиреЗред рдпрд╣ рдПрдВрдбреНрд░реЙрдЗрдб рдбреЗрд╡рд▓рдкрд░реНрд╕ рдХреЗ рд▓рд┐рдП рдирдИ рдиреЗрд╡рд┐рдЧреЗрд╢рди рддрдХрдиреАрдХ рдХреЗ рд▓рд┐рдП рдкреНрд░рд▓реЗрдЦрди рд▓реЗрдЦ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рд╣реИред рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА рд╡рд░реНрддрдорд╛рди рдореЗрдВ рд╡рд┐рдХрд╛рд╕ рдХреЗ рдЕрдзреАрди рд╣реИ, рд▓реЗрдХрд┐рди рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЙрдкрдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдЙрдкрд▓рдмреНрдз рд╣реИ рдФрд░ рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдПрдВрдбреНрд░реЙрдЗрдб рд╕реНрдЯреВрдбрд┐рдпреЛ 3.2 рдФрд░ рдЙрд╕рд╕реЗ рдЕрдзрд┐рдХ рдХреЗ рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред рдореИрдВрдиреЗ рдкрд╣рд▓реЗ рд╣реА рдХрд╛рд░реНрд░рд╡рд╛рдИ рдореЗрдВ рдХреЛрд╢рд┐рд╢ рдХреА рдФрд░ рдореИрдВ рдХрд╣ рд╕рдХрддрд╛ рд╣реВрдВ рдХрд┐ рдЙрд╕рдиреЗ рдореБрдЭреЗ рдкреНрд░рднрд╛рд╡рд┐рдд рдХрд┐рдпрд╛ред рдЕрдВрдд рдореЗрдВ, рд╕реНрдХреНрд░реАрди рдмрджрд▓рдирд╛ рдХреБрдЫ рдЬрдЯрд┐рд▓ рд╣реЛ рдЧрдпрд╛ рд╣реИ, рдЦрд╛рд╕рдХрд░ рдЕрдЧрд░ рдПрдХ рд╕реНрдХреНрд░реАрди рд╕реЗ рджреВрд╕рд░реЗ рд╕реНрдХреНрд░реАрди рдкрд░ рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рджрд░рдЕрд╕рд▓, рдореИрдВ рдЕрдиреБрд╡рд╛рдж рдЗрд╕рд▓рд┐рдП рдХрд░ рд░рд╣рд╛ рд╣реВрдВ рддрд╛рдХрд┐ рдЕрдзрд┐рдХ рд░реВрд╕реА-рднрд╛рд╖реА рдбреЗрд╡рд▓рдкрд░реНрд╕ рдкреНрд░реМрджреНрдпреЛрдЧрд┐рдХреА рдкрд░ рдзреНрдпрд╛рди рджреЗрдВ, рдФрд░ рдЗрд╕рдХреЗ рдЕрдзреНрдпрдпрди рдХреЛ рд╕рд░рд▓ рдмрдирд╛ рд╕рдХреЗрдВред
рдпрджрд┐ рдЖрдкрдХреЛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рддреНрд░реБрдЯрд┐рдпрд╛рдВ рдпрд╛ рдЧрд▓рддрд┐рдпрд╛рдБ рдирдЬрд╝рд░ рдЖрддреА рд╣реИрдВ, рддреЛ рдХреГрдкрдпрд╛ рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ рдореЗрдВ рд░рд┐рдкреЛрд░реНрдЯ рдХрд░реЗрдВред
рд╡рд╛рд╕реНрддреБ рдШрдЯрдХ
рдиреЗрд╡рд┐рдЧреЗрд╢рди рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдШрдЯрдХ рдЖрдкрдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдЧрдВрддрд╡реНрдп рдХреЗ рдмреАрдЪ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдирд╛ рдЖрд╕рд╛рди рдмрдирд╛рддрд╛ рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдиреЗрд╡рд┐рдЧреЗрд╢рди рдЧрдВрддрд╡реНрдп рд╕реНрдХреНрд░реАрди рдХреЗ рд░реВрдк рдореЗрдВ рдЯреБрдХрдбрд╝реЗ рдФрд░ рдЧрддрд┐рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк рдирдП рдкреНрд░рдХрд╛рд░ рдХреЗ рдЧрдВрддрд╡реНрдп рд╕реНрдХреНрд░реАрди рдХреЗ рд▓рд┐рдП рд╕рдорд░реНрдерди рднреА рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рдЧрдВрддрд╡реНрдп рд╕реНрдХреНрд░реАрди рдХреЗ рд╕реЗрдЯ рдХреЛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдЧреНрд░рд╛рдл рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред
рдиреЗрд╡рд┐рдЧреЗрд╢рди рдЧреНрд░рд╛рдл рдкрд░ рдЧрдВрддрд╡реНрдп рд╕реНрдХреНрд░реАрди рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЙрдирдХреЗ рдмреАрдЪ рдХреНрд░рд┐рдпрд╛рдПрдВ рд╣реИрдВ рдЬрд┐рдиреНрд╣реЗрдВ рдХреНрд░рд┐рдпрд╛рдПрдВ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ ред рдЪрд┐рддреНрд░ 1 рдкрд╛рдВрдЪ рдХреНрд░рд┐рдпрд╛рдУрдВ рд╕реЗ рдЬреБрдбрд╝реЗ рдЫрд╣ рдЧрдВрддрд╡реНрдп рд╕реНрдХреНрд░реАрди рдХреЗ рдПрдХ рд╕рд╛рдзрд╛рд░рдг рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ рд▓рд┐рдП рдиреЗрд╡рд┐рдЧреЗрд╢рди рдЧреНрд░рд╛рдл рдХрд╛ рдПрдХ рджреГрд╢реНрдп рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рджрд┐рдЦрд╛рддрд╛ рд╣реИред

рдЪрд┐рддреНрд░ 1. рдиреЗрд╡рд┐рдЧреЗрд╢рди рдЧреНрд░рд╛рдл
рдиреЗрд╡рд┐рдЧреЗрд╢рди рдХреЗ рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рд▓ рдШрдЯрдХ рдХреЛ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдХреЗ рд╕рд┐рджреНрдзрд╛рдВрддреЛрдВ рдХреЗ рдЖрдзрд╛рд░ рдкрд░ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
рдпрджрд┐ рдЖрдк рдПрдВрдбреНрд░реЙрдЗрдб рд╕реНрдЯреВрдбрд┐рдпреЛ рдореЗрдВ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдХреЗ рд╡рд╛рд╕реНрддреБрд╢рд┐рд▓реНрдк рдШрдЯрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдЖрдкрдХреЛ рд╕рдВрд╕реНрдХрд░рдг рдПрдВрдбреНрд░реЙрдЗрдб рд╕реНрдЯреВрдбрд┐рдпреЛ 3.2 рдХреИрдирд░реА 14 рдпрд╛ рдЙрдЪреНрдЪрддрд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
рдиреЗрд╡рд┐рдЧреЗрд╢рди рд╕рдорд░реНрдерди рдХреЗ рд╕рд╛рде рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреА рд╕реНрдерд╛рдкрдирд╛
рдЗрд╕рд╕реЗ рдкрд╣рд▓реЗ рдХрд┐ рдЖрдк рдПрдХ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдЧреНрд░рд╛рдлрд╝ рдмрдирд╛ рд╕рдХреЗрдВ, рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдиреЗрд╡рд┐рдЧреЗрд╢рди рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдРрд╕рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрди рдЪрд░рдгреЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВред
рдмрд┐рд▓реНрдб.рдЧреНрд░реЗрдб рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдиреЗрд╡рд┐рдЧреЗрд╢рди рд╕рдорд░реНрдерди рдЬреЛрдбрд╝реЗрдВ (рдореЙрдбреНрдпреВрд▓: рдРрдк - рдЕрдиреБрд╡рд╛рджрдХ рдиреЛрдЯ )ред рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП, рдЕрдкрдиреЗ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдШрдЯрдХ рдЬреЛрдбрд╝рдирд╛ рджреЗрдЦреЗрдВред
рд▓рдЧрднрдЧред рдЕрдиреБрд╡рд╛рджрдХ: рдпрд╣ рдмреЗрд╣рддрд░ рдирд╣реАрдВ рд╣реИ рдХрд┐ рд╡рд╣ рдЖрд▓рд╕реА рд╣реЛ рдФрд░ рдЙрдкрд░реЛрдХреНрдд рд▓рд┐рдВрдХ рдХрд╛ рдЕрдиреБрд╕рд░рдг рдХрд░реЗ, рдХреНрдпреЛрдВрдХрд┐ рдкрд░рд┐рдпреЛрдЬрдирд╛ рд╕рдХреНрд░рд┐рдп рд░реВрдк рд╕реЗ рд╡рд┐рдХрд╕рд┐рдд рд╣реЛ рд░рд╣реА рд╣реИ рдФрд░ рдирд┐рд░реНрднрд░рддрд╛ рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ рдмрджрд▓ рдЬрд╛рдПрдЧреА:
dependencies { def nav_version = "1.0.0-alpha05" // use -ktx for Kotlin implementation "android.arch.navigation:navigation-fragment:$nav_version" // use -ktx for Kotlin implementation "android.arch.navigation:navigation-ui:$nav_version" // optional - Test helpers // use -ktx for Kotlin androidTestImplementation "android.arch.navigation:navigation-testing:$nav_version" }
- рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╡рд┐рдВрдбреЛ рдореЗрдВ, Res рдлрд╝реЛрд▓реНрдбрд░ рдкрд░ рд░рд╛рдЗрдЯ-рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдФрд░ рдирдпрд╛> Android рд╕рдВрд╕рд╛рдзрди рдлрд╝рд╛рдЗрд▓ рдЪреБрдиреЗрдВ ред
рдирдпрд╛ рд╕рдВрд╕рд╛рдзрди рд╕рдВрд╡рд╛рдж рдмреЙрдХреНрд╕ рдЦреБрд▓рддрд╛ рд╣реИред - рдПрдХ рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рджрд░реНрдЬ рдХрд░реЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП " nav_graph "ред
- рд╕рдВрд╕рд╛рдзрди рдкреНрд░рдХрд╛рд░ рдбреНрд░реЙрдк-рдбрд╛рдЙрди рд╕реВрдЪреА рд╕реЗ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдХрд╛ рдЪрдпрди рдХрд░реЗрдВред
- рдУрдХреЗ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╣реЛрдЧрд╛:
- рдиреЗрд╡рд┐рдЧреЗрд╢рди рдЙрдкрдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ Res рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИред
- рдиреЗрд╡рд┐рдЧреЗрд╢рди рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ nav_graph.xml рдлрд╝рд╛рдЗрд▓ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИред
- рдиреЗрд╡рд┐рдЧреЗрд╢рди рд╕рдВрдкрд╛рджрдХ рдореЗрдВ nav_graph.xml рдлрд╝рд╛рдЗрд▓ рдЦреБрд▓рддреА рд╣реИред рдЗрд╕ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЖрдкрдХрд╛ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдЧреНрд░рд╛рдлрд╝ рд╣реИред
- рд╕рдВрдкрд╛рджрди рдореЛрдб рдкрд╛рда рдХрд╛ рдЪрдпрди рдХрд░реЗрдВред рдЦрд╛рд▓реА рдиреЗрд╡рд┐рдЧреЗрд╢рди рдЧреНрд░рд╛рдл рдХреЗ рд▓рд┐рдП XML рдлрд╝рд╛рдЗрд▓ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ:
<?xml version="1.0" encoding="utf-8"?> <navigation xmlns:android="http://schemas.android.com/apk/res/android"> </navigation>
- рдиреЗрд╡рд┐рдЧреЗрд╢рди рдПрдбрд┐рдЯрд░ рдкрд░ рд▓реМрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдПрдбрд┐рдЯ рдореЛрдб рдХрд╛ рдЪрдпрди рдХрд░реЗрдВред
рд▓рдЧрднрдЧред рдЕрдиреБрд╡рд╛рджрдХ: рдпрджрд┐ рдиреЗрд╡рд┐рдЧреЗрд╢рди рд╕рдВрдкрд╛рджрдХ рдПрдХ рдЧреНрд░рд╛рдл рдкреНрд░рджрд░реНрд╢рд┐рдд рдирд╣реАрдВ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдкреАрд▓реЗ рд░рдВрдЧ рдореЗрдВ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд┐рдП рдЧрдП рдЕрдЧрд▓реЗ рдкреИрд░рд╛рдЧреНрд░рд╛рдл рдХреА рд╢реБрд░реБрдЖрдд рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВред
рдиреЗрд╡рд┐рдЧреЗрд╢рди рд╕рдВрдкрд╛рджрдХ рдХрд╛ рдЕрд╡рд▓реЛрдХрди
рдиреЗрд╡рд┐рдЧреЗрд╢рди рдПрдбрд┐рдЯрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдХреЗрд╡рд▓ рдПрдВрдбреНрд░реЙрдЗрдб рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЗ рдХреИрдирд░реА рдмрд┐рд▓реНрдб рдореЗрдВ рдЙрдкрд▓рдмреНрдз рд╣реИред рдмреАрдЯрд╛ рдореЗрдВ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдПрдбрд┐рдЯрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдХреИрдВрдбрд┐рдбреЗрдЯ рдпрд╛ рд╕реНрдЯреЗрдмрд▓ рдмрд┐рд▓реНрдб рд░рд┐рд▓реАрдЬрд╝ рдХрд░реЗрдВ, рдлрд╝рд╛рдЗрд▓> рд╕реЗрдЯрд┐рдВрдЧреНрд╕ (рдореИрдХ рдХреЗ рд▓рд┐рдП рдПрдВрдбреНрд░реЙрдЗрдб рд╕реНрдЯреВрдбрд┐рдпреЛ> рдкреНрд░рд╛рдердорд┐рдХрддрд╛рдПрдВ ) рдкрд░ рдЬрд╛рдПрдВ, рдкреНрд░рд╛рдпреЛрдЧрд┐рдХ рд╢реНрд░реЗрдгреА рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ, рдиреЗрд╡рд┐рдЧреЗрд╢рди рдПрдбрд┐рдЯрд░ рдЪреЗрдХрдмреЙрдХреНрд╕ рдХреЛ рд╕рдХреНрд╖рдо рдХрд░реЗрдВ , рдФрд░ рдПрдВрдбреНрд░реЙрдЗрдб рд╕реНрдЯреВрдбрд┐рдпреЛ рдХреЛ рдкреБрдирд░рд╛рд░рдВрдн рдХрд░реЗрдВред
рд▓рдЧрднрдЧред рдЕрдиреБрд╡рд╛рджрдХ: рдореИрдВ рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рд╡рд┐рдзрд╛рдирд╕рднрд╛ рдХреА рдкрд░рд╡рд╛рд╣ рдХрд┐рдП рдмрд┐рдирд╛ рдХрд┐ рдХреНрдпрд╛ рдпрд╣ рдЪреЗрдХрдмреЙрдХреНрд╕ рдЗрд╕рдХреЗ рд▓рд╛рдпрдХ рд╣реИ, рдХреА рд╕рд┐рдлрд╛рд░рд┐рд╢ рдХрд░рддрд╛ рд╣реИред
рдиреЗрд╡рд┐рдЧреЗрд╢рди рдПрдбрд┐рдЯрд░ рдореЗрдВ, рдЖрдк XML рд▓рд┐рдЦрдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЬрд▓реНрджреА рд╕реЗ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдЧреНрд░рд╛рдлрд╝ рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВред рдЬреИрд╕рд╛ рдХрд┐ рдЪрд┐рддреНрд░ 2 рдореЗрдВ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, рдиреЗрд╡рд┐рдЧреЗрд╢рди рд╕рдВрдкрд╛рджрдХ рдХреЗ рддреАрди рдЦрдВрдб рд╣реИрдВ:

рдЪрд┐рддреНрд░рд╛ 2. рдиреЗрд╡рд┐рдЧреЗрд╢рди рд╕рдВрдкрд╛рджрдХ
рдЕрдиреБрднрд╛рдЧреЛрдВ рдХрд╛ рд╡рд┐рд╡рд░рдг:
- рдЧрдВрддрд╡реНрдп рд╕реНрдХреНрд░реАрди рдХреА рд╕реВрдЪреА - рдЧреНрд░рд╛рдлрд╝ рдореЗрдВ рдЬреЛрдбрд╝реЗ рдЧрдП рд╕рднреА рдЧрдВрддрд╡реНрдп рд╕реНрдХреНрд░реАрди рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ
- рдЧреНрд░рд╛рдл рд╕рдВрдкрд╛рджрдХ - рдЖрдкрдХреЗ рдЧреНрд░рд╛рдл рдХрд╛ рдПрдХ рджреГрд╢реНрдп рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рд╣реЛрддрд╛ рд╣реИ
- рдПрдЯреНрд░рд┐рдмреНрдпреВрдЯ рдПрдбрд┐рдЯрд░ - рдбреЗрд╕реНрдЯрд┐рдиреЗрд╢рди рд╕реНрдХреНрд░реАрди рдХреА рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдФрд░ рдХрд╛рд░реНрдпреЛрдВ рдХреЛ рд╢рд╛рдорд┐рд▓ рдХрд░рддрд╛ рд╣реИред
рдЧрдВрддрд╡реНрдп рд╕реНрдХреНрд░реАрди рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛
рдиреЗрд╡рд┐рдЧреЗрд╢рди рдЧреНрд░рд╛рдл рдмрдирд╛рдиреЗ рдореЗрдВ рдкрд╣рд▓рд╛ рдХрджрдо рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдХреЗ рд▓рд┐рдП рдЧрдВрддрд╡реНрдп рд╕реНрдХреНрд░реАрди рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдирд╛ рд╣реИред рдЖрдк рдПрдХ рд░рд┐рдХреНрдд рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рд╕реНрдХреНрд░реАрди рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдпрд╛ рд╡рд░реНрддрдорд╛рди рдкреНрд░реЛрдЬреЗрдХреНрдЯ рд╕реЗ рдЯреБрдХрдбрд╝реЗ рдФрд░ рдЧрддрд┐рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдиреЗрд╡рд┐рдЧреЗрд╢рди рдХрд╛ рд╡рд╛рд╕реНрддреБрд╢рд┐рд▓реНрдк рдШрдЯрдХ рдЙрди рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдЬрд┐рдирдореЗрдВ рдПрдХ рдореБрдЦреНрдп рдЧрддрд┐рд╡рд┐рдзрд┐ рд╣реИ (рдореБрдЦреНрдп рдЧрддрд┐рд╡рд┐рдзрд┐ - рдЕрдиреБрд╡рд╛рджрдХ рдХрд╛ рдиреЛрдЯ ) рдХрдИ рдЯреБрдХрдбрд╝реЛрдВ рдХреЗ рд╕рд╛рде рд╣реИ рдЬреЛ рдЧрдВрддрд╡реНрдп рд╕реНрдХреНрд░реАрди рдХреЗ рд░реВрдк рдореЗрдВ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рдореБрдЦреНрдп рдЧрддрд┐рд╡рд┐рдзрд┐ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдЧреНрд░рд╛рдл рдХреЗ рд▓рд┐рдП "рд╣реЛрд╕реНрдЯ" рд╣реИред рдХрдИ рдЧрддрд┐рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдПрдХ рдЖрд╡реЗрджрди рдореЗрдВ, рдЙрдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ рдЕрд▓рдЧ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдЧреНрд░рд╛рдл рдХреЗ рд▓рд┐рдП рдореЗрдЬрдмрд╛рди рд╣реЛрдЧрд╛ред рдиреЗрд╡рд┐рдЧреЗрд╢рди рдЧреНрд░рд╛рдлрд╝ рдХреЗ рд▓рд┐рдП рд╣реЛрд╕реНрдЯ рдореЗрдВ рдЧрддрд┐рд╡рд┐рдзрд┐ рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдирд╛ рдмрд╛рдж рдореЗрдВ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝ рдореЗрдВ рд╡рд░реНрдгрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред
рдЕрдкрдиреЗ рдЖрд╡реЗрджрди рдХреЗ рд▓рд┐рдП рдЧрдВрддрд╡реНрдп рд╕реНрдХреНрд░реАрди рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрди рдЪрд░рдгреЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВред
- рдЧреНрд░рд╛рдлрд╝ рд╕рдВрдкрд╛рджрдХ рдореЗрдВ, рдирдпрд╛ рдЧрдВрддрд╡реНрдп рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ
ред рдирдпрд╛ рдЧрдВрддрд╡реНрдп рд╕рдВрд╡рд╛рдж рдмреЙрдХреНрд╕ рдЦреБрд▓рддрд╛ рд╣реИред - рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рдмрдирд╛рдПрдБ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ рдпрд╛ рдХрд┐рд╕реА рдореМрдЬреВрджрд╛ рдЯреБрдХрдбрд╝реЗ рдпрд╛ рдЧрддрд┐рд╡рд┐рдзрд┐ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВред Android рдШрдЯрдХ рд╕рдВрд╡рд╛рдж рдмреЙрдХреНрд╕ рдЦреБрд▓рддрд╛ рд╣реИред
- Fragment Name рдлрд╝реАрд▓реНрдб рдореЗрдВ рдПрдХ рдирд╛рдо рджрд░реНрдЬ рдХрд░реЗрдВред рдпрд╣ рдЗрд╕ рдЯреБрдХрдбрд╝реЗ рдХреЗ рд╡рд░реНрдЧ рдирд╛рдо рд╕реЗ рдореЗрд▓ рдЦрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред
- Fragment Layout рдирд╛рдо рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рдПрдХ рдирд╛рдо рджрд░реНрдЬ рдХрд░реЗрдВред рдпрд╣ рдирд╛рдо рд▓реЗрдЖрдЙрдЯ рдЯреБрдХрдбрд╝рд╛ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╕реМрдВрдкрд╛ рдЬрд╛рдПрдЧрд╛ред
- рд╕рдорд╛рдкреНрдд рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ ред рдирдИ рдЧрдВрддрд╡реНрдп рд╕реНрдХреНрд░реАрди рдХреЗ рдирд╛рдо рдХреЗ рд╕рд╛рде рдЧрдВрддрд╡реНрдп рд╕реНрдХреНрд░реАрди рдХреА рд╕реВрдЪреА рдореЗрдВ рдПрдХ рд░реЗрдЦрд╛ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИ, рдФрд░ рдЧрдВрддрд╡реНрдп рд╕реНрдХреНрд░реАрди рд╕реНрд╡рдпрдВ рдЧреНрд░рд╛рдлрд╝ рд╕рдВрдкрд╛рджрдХ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИред рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ:
- рдЧреНрд░рд╛рдлрд╝ рд╕рдВрдкрд╛рджрдХ рдЧрдВрддрд╡реНрдп рд╕реНрдХреНрд░реАрди рдХрд╛ рдкреВрд░реНрд╡рд╛рд╡рд▓реЛрдХрди рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред рдпрджрд┐ рдЖрдкрдиреЗ рдПрдХ рд░рд┐рдХреНрдд рдЧрдВрддрд╡реНрдп рд╕реНрдХреНрд░реАрди рдмрдирд╛рдИ рд╣реИ, рддреЛ рдирдП рдЯреБрдХрдбрд╝реЗ рдореЗрдВ рд╢рд┐рд▓рд╛рд▓реЗрдЦ "рд╣реИрд▓реЛ рд░рд┐рдХреНрдд рдЯреБрдХрдбрд╝рд╛" рд╣реЛрдЧрд╛, рдФрд░ рдЖрдкрдХреЛ рдЧреНрд░рд╛рдлрд╝ рд╕рдВрдкрд╛рджрдХ рдореЗрдВ рдПрдХ рд╣реА рд╢рд┐рд▓рд╛рд▓реЗрдЦ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ред рдпрджрд┐ рдЖрдк рдХрд┐рд╕реА рдореМрдЬреВрджрд╛ рдЯреБрдХрдбрд╝реЗ рдпрд╛ рдЧрддрд┐рд╡рд┐рдзрд┐ рдХрд╛ рдЪрдпрди рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЧреНрд░рд╛рдлрд╝ рдЙрд╕рдХрд╛ рд▓рдШреБ рд╕рдВрд╕реНрдХрд░рдг рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░реЗрдЧрд╛ред
- рдпрджрд┐ рдЖрдкрдиреЗ рд░рд┐рдХреНрдд рдЧрдВрддрд╡реНрдп рд╕реНрдХреНрд░реАрди рдмрдирд╛рдИ рд╣реИ, рддреЛ рдЗрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рд╡рд░реНрдЧ рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рд╡рд░реНрдЧ рдирд╛рдо рдЪрд░рдг 3 рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╛рдо рд╕реЗ рдореЗрд▓ рдЦрд╛рдПрдЧрд╛ред
- рдпрджрд┐ рдЖрдкрдиреЗ рдПрдХ рд░рд┐рдХреНрдд рдЧрдВрддрд╡реНрдп рд╕реНрдХреНрд░реАрди рдмрдирд╛рдИ рд╣реИ, рддреЛ рдЙрд╕рдХреЗ рд▓рд┐рдП рдПрдХ рд▓реЗрдЖрдЙрдЯ рдлрд╝рд╛рдЗрд▓ рдЙрддреНрдкрдиреНрди рдХреА рдЬрд╛рдПрдЧреАред рдлрд╝рд╛рдЗрд▓ рдирд╛рдо рдЪрд░рдг 4 рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдирд╛рдо рд╕реЗ рдореЗрд▓ рдЦрд╛рдПрдЧрд╛ред
рдЪрд┐рддреНрд░ 3 рдПрдХ рд░рд┐рдХреНрдд рдФрд░ рдореМрдЬреВрджрд╛ рдЧрдВрддрд╡реНрдп рд╕реНрдХреНрд░реАрди рджрд┐рдЦрд╛рддрд╛ рд╣реИред

рдЪрд┐рддреНрд░рд╛ 3. рдирдИ рдФрд░ рдореМрдЬреВрджрд╛ рдЧрдВрддрд╡реНрдп рд╕реНрдХреНрд░реАрдиред
- рдЗрд╕реЗ рдЪреБрдирдиреЗ рдХреЗ рд▓рд┐рдП рдирд╡ рдирд┐рд░реНрдорд┐рдд рдЧрдВрддрд╡реНрдп рд╕реНрдХреНрд░реАрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рд╡рд┐рд╢реЗрд╖рддрд╛ рдкреИрдирд▓ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╣реИрдВ:
- рдЯрд╛рдЗрдк рдлрд╝реАрд▓реНрдб рдХреЛ "рдлрд╝реНрд░реИрдЧрдореЗрдВрдЯ" рдпрд╛ "рдЧрддрд┐рд╡рд┐рдзрд┐" рдкрд░ рд╕реЗрдЯ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдпрд╣ рдкрддрд╛ рдЪрд▓реЗ рдХрд┐ рдЧрдВрддрд╡реНрдп рд╕реНрдХреНрд░реАрди рдХреЛ рд╕реНрд░реЛрдд рдХреЛрдб рдореЗрдВ рдХреИрд╕реЗ рд▓рд╛рдЧреВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ: рдПрдХ рдЦрдВрдб рдХреЗ рд░реВрдк рдореЗрдВ рдпрд╛ рдПрдХ рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЗ рд░реВрдк рдореЗрдВред
- рд▓реЗрдмрд▓ рдлрд╝реАрд▓реНрдб рдореЗрдВ рдЧрдВрддрд╡реНрдп рд╕реНрдХреНрд░реАрди рдлрд╝рд╛рдЗрд▓ рдХрд╛ XML рдирд╛рдо рд╣реЛрддрд╛ рд╣реИред
- рдЖрдИрдбреА рдлрд╝реАрд▓реНрдб рдореЗрдВ рдЧрдВрддрд╡реНрдп рд╕реНрдХреНрд░реАрди рдХреА рдЖрдИрдбреА рд╣реЛрддреА рд╣реИ (рдПрдХ рд╕реНрд╡рддрдВрддреНрд░ рдЗрдХрд╛рдИ рдХреЗ рд░реВрдк рдореЗрдВ - рдЕрдиреБрд╡рд╛рджрдХ рдХрд╛ рдиреЛрдЯ ), рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЗрд╕реЗ рд╕реНрд░реЛрдд рдХреЛрдб (R.id - рдЕрдиреБрд╡рд╛рджрдХ рдХреЗ рдиреЛрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ) рдореЗрдВ рд╕рдВрджрд░реНрднрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
- рдХреНрд▓рд╛рд╕ рдлрд╝реАрд▓реНрдб рдореЗрдВ рдЧрдВрддрд╡реНрдп рд╕реНрдХреНрд░реАрди рдХрд╛ рд╡рд░реНрдЧ рдирд╛рдо рд╣реЛрддрд╛ рд╣реИ (рд╕рднреА рдкреИрдХреЗрдЬреЛрдВ рдХреЗ рд╕рдВрдХреЗрдд рдХреЗ рд╕рд╛рде - рдиреЛрдЯ рдЕрдиреБрд╡рд╛рджрдХ )ред
- рдПрдХреНрд╕рдПрдордПрд▓ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реНрд╡рд┐рдЪ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЯреЗрдХреНрд╕реНрдЯ рдПрдбрд┐рдЯрд┐рдВрдЧ рдореЛрдб рдкрд░ рдЬрд╛рдПрдВред XML рдореЗрдВ рдЕрдм рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдБ рдЖрдИрдбреА, рдирд╛рдо (рд╡рд░реНрдЧ рдирд╛рдо), рд▓реЗрдмрд▓ рдФрд░ рд▓реЗрдЖрдЙрдЯ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ, рдЬреЛ рдореМрдЬреВрджрд╛ рдХрдХреНрд╖рд╛рдУрдВ рдФрд░ рд▓реЗрдЖрдЙрдЯ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдирд╛рдо рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддреЗ рд╣реИрдВ:
<?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/blankFragment"> <fragment android:id="@+id/blankFragment" android:name="com.example.cashdog.cashdog.BlankFragment" android:label="Blank" tools:layout="@layout/fragment_blank" /> </navigation>
XML рдореЗрдВ рдкреНрд░рд╛рд░рдВрдн рдЧрдВрддрд╡реНрдп рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЦрд╛рд▓реА рдЧрдВрддрд╡реНрдп рд╕реНрдХреНрд░реАрди ( рдРрдк: startDestination = "@ + id / рдЯреБрдХрдбрд╝рд╛" ) рдХреА рдЖрдИрдбреА рд╣реИ ред рдЧрдВрддрд╡реНрдп рдкреНрд░рд╛рд░рдВрдн рд╕реНрдХреНрд░реАрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП, рдЧрдВрддрд╡реНрдп рдкреНрд░рд╛рд░рдВрдн рд╕реНрдХреНрд░реАрди рдЕрдиреБрднрд╛рдЧ рджреЗрдЦреЗрдВред
рдЧрдВрддрд╡реНрдп рд╕реНрдХреНрд░реАрди рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛
рдЙрдиреНрд╣реЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдПрдХ рд╕реЗ рдЕрдзрд┐рдХ рдЧрдВрддрд╡реНрдп рд╕реНрдХреНрд░реАрди рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рджреЛ рдЦрд╛рд▓реА рдЧрдВрддрд╡реНрдп рд╕реНрдХреНрд░реАрди рдХреЗ рд╕рд╛рде рдиреЗрд╡рд┐рдЧреЗрд╢рди рдЧреНрд░рд╛рдл рдХреЗ рд▓рд┐рдП XML рдХрд╛ рд╡рд░реНрдгрди рдХрд░рддрд╛ рд╣реИ:
<?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/blankFragment"> <fragment android:id="@+id/blankFragment" android:name="com.example.cashdog.cashdog.BlankFragment" android:label="fragment_blank" tools:layout="@layout/fragment_blank" /> <fragment android:id="@+id/blankFragment2" android:name="com.example.cashdog.cashdog.BlankFragment2" android:label="Blank2" tools:layout="@layout/fragment_blank_fragment2" /> </navigation>
рдЧрдВрддрд╡реНрдп рд╕реНрдХреНрд░реАрди рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЬреБрдбрд╝реЗ рд╣реБрдП рд╣реИрдВред рджреЛ рдЧрдВрддрд╡реНрдп рд╕реНрдХреНрд░реАрди рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЖрдкрдХреЛ рдЪрд╛рд╣рд┐рдП:
- рдЧреНрд░рд╛рдл рдПрдбрд┐рдЯрд░ рдореЗрдВ, рдЧрдВрддрд╡реНрдп рд╕реНрдХреНрд░реАрди рдкрд░ рд╣реЛрд╡рд░ рдХрд░реЗрдВ рдЬрд┐рд╕рд╕реЗ рдЖрдк рд╕рдВрдХреНрд░рдордг рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред рдЗрд╕ рдкрд░ рдПрдХ рд╕рд░реНрдХрд▓ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ред

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

рдЪрд┐рддреНрд░рд╛ 5. рдХрдиреЗрдХреНрдЯреЗрдб рдЧрдВрддрд╡реНрдп рд╕реНрдХреНрд░реАрди - рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреЛ рдЙрдЬрд╛рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рддреАрд░ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рд╢реЗрд╖рддрд╛ рдкреИрдирд▓ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ:
- рдЯрд╛рдЗрдк рдлрд╝реАрд▓реНрдб рдореЗрдВ "рдПрдХреНрд╢рди" рд╣реЛрддрд╛ рд╣реИред
- рдЖрдИрдбреА рдлрд╝реАрд▓реНрдб рдореЗрдВ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЙрддреНрдкрдиреНрди рдХрд╛рд░реНрд░рд╡рд╛рдИ рдЖрдИрдбреА рд╣реЛрддреА рд╣реИред
- рдЧрдВрддрд╡реНрдп рдлрд╝реАрд▓реНрдб рдореЗрдВ рдЧрдВрддрд╡реНрдп рд╕реНрдХреНрд░реАрди рдХреА ID рд╣реЛрддреА рд╣реИ рдЬрд┐рд╕рд╕реЗ рд╕рдВрдХреНрд░рдордг рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред
- XML рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЯреЗрдХреНрд╕реНрдЯ рдПрдбрд┐рдЯрд┐рдВрдЧ рдореЛрдб рдкрд░ рдЬрд╛рдПрдБред рдкреИрд░реЗрдВрдЯ рдбреЗрд╕реНрдЯрд┐рдиреЗрд╢рди рд╕реНрдХреНрд░реАрди рдкрд░ рдПрдХ рдПрдХреНрд╢рди рдЯреИрдЧ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИред рдХрд╛рд░реНрд░рд╡рд╛рдИ рдореЗрдВ рдПрдХ рдЙрддреНрдкрдиреНрди рдЖрдИрдбреА рдФрд░ рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рдЕрдЧрд▓реЗ рдЧрдВрддрд╡реНрдп рд╕реНрдХреНрд░реАрди рдХреА рдЖрдИрдбреА рд╢рд╛рдорд┐рд▓ рд╣реИред
<?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/blankFragment"> <fragment android:id="@+id/blankFragment" android:name="com.example.cashdog.cashdog.BlankFragment" android:label="fragment_blank" tools:layout="@layout/fragment_blank" > <action android:id="@+id/action_blankFragment_to_blankFragment2" app:destination="@id/blankFragment2" /> </fragment> <fragment android:id="@+id/blankFragment2" android:name="com.example.cashdog.cashdog.BlankFragment2" android:label="fragment_blank_fragment2" tools:layout="@layout/fragment_blank_fragment2" /> </navigation>
рдкреНрд░рд╛рд░рдВрдн рд╕реНрдХреНрд░реАрди рдХреЗ рд░реВрдк рдореЗрдВ рдЧрдВрддрд╡реНрдп рд╕реНрдХреНрд░реАрди рдХрд╛ рдкрджрдирд╛рдо
рдЧреНрд░рд╛рдл рд╕рдВрдкрд╛рджрдХ рдШрд░ рдХреЗ рдЖрдЗрдХрди рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИ
рдкрд╣рд▓реА рдордВрдЬрд┐рд▓ рд╕реНрдХреНрд░реАрди рдХреЗ рдирд╛рдо рдХреЗ рддреБрд░рдВрдд рдмрд╛рджред рдпрд╣ рдЖрдЗрдХрди рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЧрдВрддрд╡реНрдп рд╕реНрдХреНрд░реАрди рдиреЗрд╡рд┐рдЧреЗрд╢рди рдЧреНрд░рд╛рдлрд╝ рдореЗрдВ рдкреНрд░рд╛рд░рдВрдн рд╕реНрдХреНрд░реАрди рд╣реИред рдЖрдк рдЗрди рдЪрд░рдгреЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░рдХреЗ рдПрдХ рдЕрд▓рдЧ рдЧрдВрддрд╡реНрдп рд╕реНрдХреНрд░реАрди рдХреЛ рд╕реНрдЯрд╛рд░реНрдЯ рд╕реНрдХреНрд░реАрди рдХреЗ рд░реВрдк рдореЗрдВ рдЪреБрди рд╕рдХрддреЗ рд╣реИрдВ:
- рдЧреНрд░рд╛рдлрд╝ рд╕рдВрдкрд╛рджрдХ рдореЗрдВ рд╡рд╛рдВрдЫрд┐рдд рдЧрдВрддрд╡реНрдп рд╕реНрдХреНрд░реАрди рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд░реЗрдВред
- рд╡рд┐рд╢реЗрд╖рддрд╛ рдкрдЯреНрдЯреА рдкрд░ рд╕реЗрдЯ рдкреНрд░рд╛рд░рдВрдн рдЧрдВрддрд╡реНрдп рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ ред рдЕрдм рдпрд╣ рдбреЗрд╕реНрдЯрд┐рдиреЗрд╢рди рд╕реНрдХреНрд░реАрди рд╕реНрдЯрд╛рд░реНрдЯ рд╕реНрдХреНрд░реАрди рд╣реИред рд▓рдЧрднрдЧред рдЕрдиреБрд╡рд╛рджрдХ: рдЖрдк рд╡рд╛рдВрдЫрд┐рдд рдЧрдВрддрд╡реНрдп рд╕реНрдХреНрд░реАрди рдкрд░ рдЖрд░рдПрдордмреА рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдЦреБрд▓рдиреЗ рд╡рд╛рд▓реЗ рдореЗрдиреВ рдореЗрдВ рдПрдХ рд╕рдорд╛рди рдЖрдЗрдЯрдо рдХрд╛ рдЪрдпрди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рдиреЗрд╡рд┐рдЧреЗрд╢рди рдЧреНрд░рд╛рдл рдХреЗ рд▓рд┐рдП рд╣реЛрд╕реНрдЯ рдореЗрдВ рдЧрддрд┐рд╡рд┐рдзрд┐ рдЪрд╛рд▓реВ рдХрд░реЗрдВ
рдЧрддрд┐рд╡рд┐рдзрд┐ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдЧреНрд░рд╛рдл рдХреЗ рд▓рд┐рдП рдореЗрдЬрдмрд╛рди рдмрди рдЬрд╛рддреА рд╣реИ рдзрдиреНрдпрд╡рд╛рдж рд░рд┐рдХреНрдд рдирд╡рд╣реЙрд╕реНрдЯ рддрддреНрд╡ рдХреЗ рд▓рд┐рдП, рдЬрд┐рд╕реЗ рдЧрддрд┐рд╡рд┐рдзрд┐ рд▓реЗрдЖрдЙрдЯ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рддрд╛ рд╣реИред рдирд╡рд╣реЙрд╕реНрдЯ рдПрдХ рддрддреНрд╡ рд╣реИ рдЬрд┐рд╕рдХреА рдЙрдкрд╕реНрдерд┐рддрд┐ рдЖрдкрдХреЛ рдЧрдВрддрд╡реНрдп рд╕реНрдХреНрд░реАрди рдХреЛ рдЙрд╕ рдХреНрд░рдо рдореЗрдВ рдмрджрд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддреА рд╣реИ рдЬреЛ рдЖрдкрдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХреЛ рдЪрд╛рд╣рд┐рдПред
рдиреЗрд╡рд┐рдЧреЗрд╢рди рдореЗрдВ NavHost рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ NavHostFragment ред
NavHost рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдкрдХреЛ рдРрдк рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЗрд╕реЗ рдЕрдкрдиреЗ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдЧреНрд░рд╛рдлрд╝ рдкрд░ рдореИрдк рдХрд░рдирд╛ рд╣реЛрдЧрд╛ : navGraph рд╡рд┐рд╢реЗрд╖рддрд╛ ред рдпрд╣ рдХреЛрдб рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ рд▓реЗрдЖрдЙрдЯ рдореЗрдВ NavHostFragment рдХреИрд╕реЗ рд╢рд╛рдорд┐рд▓ рдХрд░реЗрдВ рдФрд░ рдЗрд╕реЗ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдЧреНрд░рд╛рдлрд╝ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ:
?xml version="1.0" encoding="utf-8"?> <android.support.constraint.ConstraintLayout 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:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <fragment android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/my_nav_host_fragment" android:name="androidx.navigation.fragment.NavHostFragment" app:navGraph="@navigation/nav_graph" app:defaultNavHost="true" /> </android.support.constraint.ConstraintLayout>
рдЗрд╕ рдЙрджрд╛рд╣рд░рдг рдореЗрдВ рдРрдк рд╡рд┐рд╢реЗрд╖рддрд╛ рд╣реИ : defaultNavHost = "true" ред рд╡рд╣ рд╕рд┐рд╕реНрдЯрдо рдмрдЯрди рдмреИрдХ рдХреЛ рдЗрдВрдЯрд░рд╕реЗрдкреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЬрд┐рдореНрдореЗрджрд╛рд░ рд╣реИ ( рдиреЛрдЯ рдЯреНрд░рд╛рдВрд╕рд▓реЗрдЯрд░: рд╕рд┐рд╕реНрдЯрдо рдмрдЯрди рдмреИрдХ рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд╢реАрд░реНрд╖ рдкреИрдирд▓ рдкрд░ рдЕрдк рдПрд░реЛ рдЙрд╕реА рддрд░рд╣ рдХрд╛рдо рдХрд░реЗрдЧрд╛ )ред рдЖрдк AppCompatActivity.onSupportNavigateUp () рдХреЛ рднреА рдУрд╡рд░рд░рд╛рдЗрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ NavController.navigateUp () рдХреЛ рдХреЙрд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: рдЬреИрд╕рд╛ рдХрд┐ рдпрд╣рд╛рдБ рджрд┐рдЦрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ:
рдЬрд╛рд╡рд╛ @Override public boolean onSupportNavigateUp() { return Navigation.findNavController(this, R.id.nav_host_fragment).navigateUp(); }
Kotlin override fun onSupportNavigateUp() = findNavController(R.id.nav_host_fragment).navigateUp()
рд╡рд┐рдЧреЗрдЯреНрд╕ рдХреЛ рдмрд╛рдВрдзрдиреЗ рдХреА рдХреНрд░рд┐рдпрд╛
NavController рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЧрдВрддрд╡реНрдп рд╕реНрдХреНрд░реАрди рдкрд░ рдЬрд╛рдПрдВ ред рдпрд╣ рдЕрддрд┐рднрд╛рд░рд┐рдд рд╕реНрдереИрддрд┐рдХ findNavController () рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдкреНрд░рд╛рдкреНрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
NavController рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЧрдВрддрд╡реНрдп рд╕реНрдХреНрд░реАрди рдкрд░ рдЬрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕рдХреЗ рдиреЗрд╡рд┐рдЧреЗрдЯ () рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ ред рдиреЗрд╡рд┐рдЧреЗрдЯ () рд╡рд┐рдзрд┐ рдПрдХ рд╕рдВрд╕рд╛рдзрди рдЖрдИрдбреА рдХреЛ рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддреА рд╣реИред рдпрд╣ рдЧрдВрддрд╡реНрдп рд╕реНрдХреНрд░реАрди рдХреА рдЖрдИрдбреА рд╣реЛ рд╕рдХрддреА рд╣реИ, рдЬрд┐рд╕ рдкрд░ рдЖрдк рдЬрд╛рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рдпрд╛ рдпрд╣ рдПрдХреНрд╢рди рдЖрдИрдбреА рд╣реЛ рд╕рдХрддреА рд╣реИред рдЧрдВрддрд╡реНрдп рд╕реНрдХреНрд░реАрди рдЖрдИрдбреА рдХреЗ рдмрдЬрд╛рдп рдПрдХреНрд╢рди рдЖрдИрдбреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдЖрдк рд╕реНрдХреНрд░реАрди рдХреЗ рдмреАрдЪ рд╕рдВрдХреНрд░рдордг рдПрдиреАрдореЗрд╢рди рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЕрдзрд┐рдХ рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд▓рд┐рдП, рдЧрдВрддрд╡реНрдп рд╕реНрдХреНрд░реАрди рдХреЗ рдмреАрдЪ рдПрдиреАрдореЗрд╢рди рдмрджрд▓рд╛рд╡ рдмрдирд╛рдирд╛ рджреЗрдЦреЗрдВред
рдпрд╣ рдХреЛрдб рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ рдмрдЯрди рдкрд░ рдХрд┐рд╕реА рдХреНрд░рд┐рдпрд╛ рдХреЛ рдХреИрд╕реЗ рдмрд╛рдВрдзреЗрдВ:
рдЬрд╛рд╡рд╛ viewTransactionsButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Navigation.findNavController(view).navigate(R.id.viewTransactionsAction); } });
Kotlin viewTransactionsButton.setOnClickListener { view -> view.findNavController().navigate(R.id.viewTransactionsAction) }
рдПрдВрдбреНрд░реЙрдЗрдб рдПрдХ рдмреИрдХ рд╕реНрдЯреИрдХ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рддрд╛ рд╣реИ рдЬреЛ рдЕрдВрддрд┐рдо рдУрдкрди рдбреЗрд╕реНрдЯрд┐рдиреЗрд╢рди рд╕реНрдХреНрд░реАрди рдХреЛ рд╕реНрдЯреЛрд░ рдХрд░рддрд╛ рд╣реИред рдЬрдм рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рд▓реЙрдиреНрдЪ рдХрд░рддрд╛ рд╣реИ, рддреЛ рдкрд╣рд▓реЗ рдЧрдВрддрд╡реНрдп рд╕реНрдХреНрд░реАрди рдХреЛ рд╕реНрдЯреИрдХ рдкрд░ рдзрдХреЗрд▓ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреНрд░рддреНрдпреЗрдХ рдХреЙрд▓ () рд╡рд┐рдзрд┐ рд╕реНрдЯреИрдХ рдкрд░ рдПрдХ рдирдИ рдЧрдВрддрд╡реНрдп рд╕реНрдХреНрд░реАрди рдХреЛ рдзрдХреНрдХрд╛ рджреЗрддреА рд╣реИред рдмреИрдХ рдпрд╛ рдЕрдк рдмрдЯрди рдХреЛ рджрдмрд╛рдиреЗ рдкрд░ рдЧрдВрддрд╡реНрдп рд╕реНрдХреНрд░реАрди рдХреЛ рд╕реНрдЯреИрдХ рд╕реЗ рдирд┐рдХрд╛рд▓рдиреЗ рдХреЗ рд▓рд┐рдП NavController.navigateUp () рдФрд░ NavController.popBackStack () рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдХреЙрд▓ рдХрд░рддрд╛ рд╣реИред
рдмрдЯрдиреЛрдВ рдХреЗ рд▓рд┐рдП, рдЖрдк рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ Navigation.createNavigateOnClickListener () рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ:
рдЬрд╛рд╡рд╛ button.setOnClickListener(Navigation.createNavigateOnClickListener(R.id.next_fragment, null));
Kotlin button.setOnClickListener(Navigation.createNavigateOnClickListener(R.id.next_fragment, null))
рдиреЗрд╡рд┐рдЧреЗрд╢рди рдбреНрд░реЙрдЕрд░ рдореЗрдиреВ рдореЗрдВ рдмрд╛рдЗрдВрдбрд┐рдВрдЧ рдХреНрд░рд┐рдпрд╛рдПрдБ
рдЖрдк рдореЗрдиреВ рдЖрдЗрдЯрдо (рдЖрдЗрдЯрдо) рдХреА рдЖрдИрдбреА рдХреЗ рд░реВрдк рдореЗрдВ рдЧрдВрддрд╡реНрдп рд╕реНрдХреНрд░реАрди рдХреА рдЖрдИрдбреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдбреНрд░реЙрдЕрд░ рдХреЗ рд╕рд╛рде рдиреЗрд╡рд┐рдЧреЗрд╢рди рдХреНрд░рд┐рдпрд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВред рдирд┐рдореНрди рдХреЛрдб рдПрдХ рдЧрдВрддрд╡реНрдп рд╕реНрдХреНрд░реАрди рдХрд╛ рдПрдХ рдЙрджрд╛рд╣рд░рдг рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдХреА рдЖрдИрдбреА рд╡рд┐рд╡рд░рдг_рдкреГрд╖реНрда_рдлреНрд░реИрдЧрдореЗрдВрдЯ рдкрд░ рд╕реЗрдЯ рд╣реИ:
<fragment android:id="@+id/details_page_fragment" android:label="@string/details" android:name="com.example.android.myapp.DetailsFragment" />
рдЧрдВрддрд╡реНрдп рд╕реНрдХреНрд░реАрди рдФрд░ рдореЗрдиреВ рдЖрдЗрдЯрдо рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реА рдЖрдИрдбреА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдореЗрдиреВ рдЖрдЗрдЯрдо рдФрд░ рдЧрдВрддрд╡реНрдп рд╕реНрдХреНрд░реАрди рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЬреБрдбрд╝реЗ рд╣реБрдП рд╣реИрдВред рдпрд╣ рдХреЛрдб рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ рдЧрдВрддрд╡реНрдп рд╕реНрдХреНрд░реАрди рдХреЛ рдореЗрдиреВ рдЖрдЗрдЯрдо рд╕реЗ рдХреИрд╕реЗ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдП (рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ menu_nav_drawer.xml рдлрд╝рд╛рдЗрд▓ рд╣реИ):
<item android:id="@id/details_page_fragment" android:icon="@drawable/ic_details" android:title="@string/details" />
рдпрд╛ рдпрд╣рд╛рдБ рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдХреЗ рд╕рд╛рде рдореЗрдиреВ рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрджрд╛рд╣рд░рдг рд╣реИ (рдЙрджрд╛ред Menu_overflow.xml ):
<item android:id="@id/details_page_fragment" android:icon="@drawable/ic_details" android:title="@string/details" android:menuCategory:"secondary" />
рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдиреЗрд╡рд┐рдЧреЗрд╢рди рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдШрдЯрдХ рдореЗрдВ рдиреЗрд╡рд┐рдЧреЗрд╢рдирдпреВрдЖрдИ рд╡рд░реНрдЧ рд╢рд╛рдорд┐рд▓ рд╣реИред рдЗрд╕ рд╡рд░реНрдЧ рдореЗрдВ рдХрдИ рд╕реНрдерд┐рд░ рд╡рд┐рдзрд┐рдпрд╛рдВ рд╣реИрдВ рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ рдЖрдк рдореЗрдиреВ рд╕реНрдХреНрд░реАрди рдХреЗ рд╕рд╛рде рдореЗрдиреВ рдЖрдЗрдЯрдо рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдпрд╣ рдХреЛрдб рджрд┐рдЦрд╛рддрд╛ рд╣реИ рдХрд┐ рдХрд┐рд╕реА рдиреЗрд╡рд┐рдЧреЗрд╢рди рдЖрдЗрдЯрдо рдХреЗ рдореЗрдиреВ рдЖрдЗрдЯрдо рдХреЛ рдХрдиреЗрдХреНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП setupWithNavController () рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд░реЗрдВ:
рдЬрд╛рд╡рд╛ NavigationView navigationView = (NavigationView) findViewById(R.id.nav_view); NavigationUI.setupWithNavController(navigationView, navController);
Kotlin val navigationView = findViewById<NavigationView>(R.id.nav_view) navigationView.setupWithNavController(navController)
рдЖрдкрдХреЛ рдиреЗрд╡рд┐рдЧреЗрд╢рдирдпреВрдЖрдИ рд╡рд┐рдзрд┐рдпреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдореЗрдиреВ рдХреЗ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдШрдЯрдХреЛрдВ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рддрд╛рдХрд┐ рдЙрдирдХреА рд╕реНрдерд┐рддрд┐ рдирд╡рдХрдВрдЯреНрд░реЛрд▓рд░ рдореЗрдВ рдкрд░рд┐рд╡рд░реНрддрди рдХреЗ рд╕рд╛рде рд╕рд┐рдВрдХреНрд░рдирд╛рдЗрдЬрд╝ рд░рд╣реЗред
рдЧрдВрддрд╡реНрдп рд╕реНрдХреНрд░реАрди рдХреЗ рдмреАрдЪ рдбреЗрдЯрд╛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛
рдЖрдк рдбреЗрд╕реНрдЯрд┐рдиреЗрд╢рди рд╕реНрдХреНрд░реАрди рдХреЗ рдмреАрдЪ рдбреЗрдЯрд╛ рдХреЛ рджреЛ рддрд░рд╣ рд╕реЗ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ: рдмрдВрдбрд▓ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдпрд╛ рд╕реЗрдлрдЧрд╛рд░реНрдб рдЧреНрд░реИрдбрд▓ рдкреНрд▓рдЧрдЗрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕реБрд░рдХреНрд╖рд┐рдд рддрд░реАрдХреЗред рдмрдВрдбрд▓ рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрди рдЪрд░рдгреЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВред рдпрджрд┐ рдЖрдк рдЧреНрд░реИрдбрд▓ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдПрдХ рдкреНрд░рдХрд╛рд░-рд╕реБрд░рдХреНрд╖рд┐рдд рддрд░реАрдХреЗ рд╕реЗ рдЧрдВрддрд╡реНрдп рд╕реНрдХреНрд░реАрди рдХреЗ рдмреАрдЪ рдбреЗрдЯрд╛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛ рдЕрдиреБрднрд╛рдЧ рджреЗрдЦреЗрдВред
- рдЧреНрд░рд╛рдлрд╝ рд╕рдВрдкрд╛рджрдХ рдореЗрдВ, рдЧрдВрддрд╡реНрдп рд╕реНрдХреНрд░реАрди рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ рдЬрд┐рд╕реЗ рдбреЗрдЯрд╛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред
- рд╡рд┐рд╢реЗрд╖рддрд╛ рдкреИрдирд▓ рдХреЗ рддрд░реНрдХ рдЦрдВрдб рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ ( + ) рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рд░рд┐рдХреНрдд рдлрд╝реАрд▓реНрдб рдирд╛рдо (рдирд╛рдо), рдкреНрд░рдХрд╛рд░ (рдкреНрд░рдХрд╛рд░) рдФрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди) рдХреЗ рд╕рд╛рде рдПрдХ рддрд░реНрдХ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛ред
- рдПрдХ рддрд░реНрдХ рдирд╛рдо рджрд░реНрдЬ рдХрд░реЗрдВред
- рдПрдХ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рджрд░реНрдЬ рдХрд░реЗрдВред
- рдЧрдВрддрд╡реНрдп рд╕реНрдХреНрд░реАрди рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░рддреЗ рд╣реБрдП рдХреНрд░рд┐рдпрд╛ (рддреАрд░) рдХреЛ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд░реЗрдВред рддрд░реНрдХ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдЕрднреА рдмрдирд╛рдпрд╛ рддрд░реНрдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
- XML рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдЯреЗрдХреНрд╕реНрдЯ рдПрдбрд┐рдЯрд┐рдВрдЧ рдореЛрдб рдкрд░ рдЬрд╛рдПрдБред рдЧрдВрддрд╡реНрдп рд╕реНрдХреНрд░реАрди рдореЗрдВ рдПрдХ рддрд░реНрдХ рдЯреИрдЧ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рдирд╛рдо рдФрд░ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЧреБрдг рд╣реИрдВред
- рд╕реНрд░реЛрдд рдХреЛрдб рдореЗрдВ, рдПрдХ рдмрдВрдбрд▓ рдмрдирд╛рдПрдВ рдФрд░ рдЙрд╕реЗ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░реЗрдВ () рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдЧрдВрддрд╡реНрдп рд╕реНрдХреНрд░реАрди рдкрд░ рдкрд╛рд╕ рдХрд░реЗрдВ :
рдЬрд╛рд╡рд╛ Bundle bundle = new Bundle(); bundle.putString("amount", amount); Navigation.findNavController(view).navigate(R.id.confirmationAction, bundle);
Kotlin var bundle = bundleOf("amount" to amount) view.findNavController().navigate(R.id.confirmationAction, bundle)
рдЧрдВрддрд╡реНрдп рд╕реНрдХреНрд░реАрди рдЬрд┐рд╕рдореЗрдВ рдбреЗрдЯрд╛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдмрдВрдбрд▓ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП getArguments () рд╡рд┐рдзрд┐ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ рдФрд░ рдЗрд╕рдХреА рд╕рд╛рдордЧреНрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ:
рдЬрд╛рд╡рд╛ TextView tv = view.findViewById(R.id.textViewAmount); tv.setText(getArguments().getString("amount"));
Kotlin val tv = view.findViewById(R.id.textViewAmount) tv.text = arguments.getString("amount")
рдПрдХ рд╕реБрд░рдХреНрд╖рд┐рдд рддрд░реАрдХреЗ рд╕реЗ рдЧрдВрддрд╡реНрдп рд╕реНрдХреНрд░реАрди рдХреЗ рдмреАрдЪ рдбреЗрдЯрд╛ рд╕реНрдерд╛рдирд╛рдВрддрд░рд┐рдд рдХрд░рдирд╛
рдиреЗрд╡рд┐рдЧреЗрд╢рди рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░рд▓ рдШрдЯрдХ рдореЗрдВ рдПрдХ рдЧреНрд░реЗрдбрд▓ рдкреНрд▓рдЧрдЗрди рд╣реИ рдЬрд┐рд╕реЗ рд╕реЗрдлрдЧрд░реНрд╕ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдбреЗрд╕реНрдЯрд┐рдиреЗрд╢рди рдФрд░ рдПрдХреНрд╢рди рд╕реНрдХреНрд░реАрди рдХреЗ рддрд░реНрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдЯрд╛рдЗрдк-рд╕реЗрдл рдПрдХреНрд╕реЗрд╕ рдХреЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рд╕рд░рд▓ рдХрдХреНрд╖рд╛рдПрдВ рдмрдирд╛рддрд╛ рд╣реИред рд╕реЗрдлрдЧрд░реНрдЧ рдХрд╛ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдмрдВрдбрд▓ рдХреЗ рдЙрдкрдпреЛрдЧ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдзрд┐рдХ рдирдореВрдирд╛ рд╕реБрд░рдХреНрд╖рд╛ рдХреЗ рд▓рд┐рдП рдереЛрдбрд╝рд╛ рдЕрддрд┐рд░рд┐рдХреНрдд рдХреЛрдб рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЗрд╕ рдкреНрд▓рдЧрдЗрди рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП, build.gradle (рдореЙрдбреНрдпреВрд▓ рдореЗрдВ: рдПрдкреНрд▓рд┐рдХреЗрд╢рди - рдЕрдиреБрд╡рд╛рджрдХ рдЯрд┐рдкреНрдкрдгреА) рдореЗрдВ androidx.navigation.safeargs рд▓рд╛рдЗрди рдбрд╛рд▓реЗрдВ ред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдЗрд╕ рддрд░рд╣:
apply plugin: 'com.android.application' apply plugin: 'androidx.navigation.safeargs' android { //... }
рд▓рдЧрднрдЧред рдЕрдиреБрд╡рд╛рджрдХ: рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдирд┐рд░реНрднрд░рддрд╛ classpath "android.arch.navigation: рдиреЗрд╡рд┐рдЧреЗрд╢рди-рд╕реБрд░рдХреНрд╖рд┐рдд-рдЖрд░реНрдЧ-рдЧреНрд░реЗрдб-рдкреНрд▓рдЧрдЗрди: 1.0.0-Alpha02" рдХреЛ build.gradle (рдкреНрд░реЛрдЬреЗрдХреНрдЯ: рдкреНрд░реЛрдЬреЗрдХреНрдЯрдиреЗрдо) рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ:
buildscript { repositories { google() } dependencies { classpath "android.arch.navigation:navigation-safe-args-gradle-plugin:1.0.0-alpha02" } }
рдкреНрд▓рдЧрдЗрди рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдЯрд╛рдЗрдк-рд╕реЗрдл рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрди рдЪрд░рдгреЛрдВ рдХрд╛ рдкрд╛рд▓рди рдХрд░реЗрдВ:
- рдЧреНрд░рд╛рдл рдПрдбрд┐рдЯрд░ рдореЗрдВ, рдЧрдВрддрд╡реНрдп рд╕реНрдХреНрд░реАрди рдХреЛ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд░реЗрдВ рдЬрд┐рд╕рдореЗрдВ рдЖрдк рдбреЗрдЯрд╛ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
- рд╡рд┐рд╢реЗрд╖рддрд╛ рдкреИрдирд▓ рдХреЗ рддрд░реНрдХ рдЕрдиреБрднрд╛рдЧ рдореЗрдВ + рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рдЦрд╛рд▓реА рдлрд╝реАрд▓реНрдб рдХреЗ рд╕рд╛рде рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рджрд┐рдЦрд╛рдИ рджреЗрддреА рд╣реИред
- рдПрдХ рддрд░реНрдХ рдирд╛рдо рджрд░реНрдЬ рдХрд░реЗрдВред
- рдПрдХ рддрд░реНрдХ рдкреНрд░рдХрд╛рд░ рдЪреБрдиреЗрдВред
- рдПрдХ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рджрд░реНрдЬ рдХрд░реЗрдВред
- рдЧрдВрддрд╡реНрдп рд╕реНрдХреНрд░реАрди рд╕реЗ рдкрд╣рд▓реЗ рдХреА рдХреНрд░рд┐рдпрд╛ рдХреЛ рд╣рд╛рдЗрд▓рд╛рдЗрдЯ рдХрд░реЗрдВред рддрд░реНрдХ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдорд╛рди рдЕрдиреБрднрд╛рдЧ рдореЗрдВ рдЕрднреА рдмрдирд╛рдпрд╛ рддрд░реНрдХ рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдПред
- XML рд╕рдВрдкрд╛рджрди рдореЛрдб рдореЗрдВ рдкреНрд░рд╡реЗрд╢ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд╛рда рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред
<fragment android:id="@+id/confirmationFragment" android:name="com.example.buybuddy.buybuddy.ConfirmationFragment" android:label="fragment_confirmation" tools:layout="@layout/fragment_confirmation"> <argument android:name="amount" android:defaultValue="1" app:type="integer"/> </fragment>
рд╕реЗрдлрдЧрд╛рд░реНрд╕ рдкреНрд▓рдЧ-рдЗрди рдЙрддреНрдкрдиреНрди рд╣реЛрдиреЗ рдХреЗ рдмрд╛рдж рдХреЛрдб ( рдЬреЛ рдХрд┐ рдЯрд╛рдЗрдк - рдЯреНрд░рд╛рдВрд╕рд▓реЗрдЯрд░ рдиреЛрдЯ рдХреЗ рд╕рд╛рде рдПрдХ рддрд░реНрдХ рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рдж ), рд╕реНрдХреНрд░реАрди рднреЗрдЬрдиреЗ рдФрд░ рд╕реНрдХреНрд░реАрди рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдХреНрд╖рд╛рдПрдВ рднреА рдЙрддреНрдкрдиреНрди рд╣реБрдИрдВред
рд▓рдЧрднрдЧред рдЕрдиреБрд╡рд╛рджрдХ: рдПрдХ рддрд░реНрдХ рдмрдирд╛рдиреЗ рдХреЗ рдмрд╛рдж, рдореБрдЭреЗ рдЧреНрд░реИрдбрд▓ рдлрд╛рдЗрд▓ рдмрдЯрди рдХреЗ рд╕рд╛рде рд╕рд┐рдВрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ рддрд╛рдХрд┐ рдХрдХреНрд╖рд╛рдПрдВ рдЙрддреНрдкрдиреНрди рд╣реЛ рд╕рдХреЗрдВред
рдкреНрд░реЗрд╖рдХ рд╕реНрдХреНрд░реАрди рд╡рд░реНрдЧ рдХрд╛ рдореВрд▓ рдирд╛рдо рд╡рд╣реА рд╣реИ, рдЬрд┐рд╕рдХреЗ рд╕рд╛рде рд╢рдмреНрдж рдЕрдВрдд рдореЗрдВ рдЬреЛрдбрд╝реЗ рдЧрдП рд╣реИрдВред
рдпрд╣реА рд╣реИ, рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ FirstFragment рдЧрдВрддрд╡реНрдп рд╕реНрдХреНрд░реАрди рд╣реИ, рддреЛ рдЙрддреНрдкрдиреНрди рд╡рд░реНрдЧ FirstFragmentDirections рдХрд╣рд▓рд╛рддрд╛ рд╣реИред рдЗрд╕ рд╡рд░реНрдЧ рдореЗрдВ рдПрдХ рд╡рд┐рдзрд┐ рд╣реИ (!) рдЬрд┐рд╕рдХрд╛ рдирд╛рдо рддрд░реНрдХ рд╕реЗ рдЧреБрдЬрд░рдиреЗ рд╡рд╛рд▓реА рдХрд╛рд░реНрд░рд╡рд╛рдИ рдХреА рдЖрдИрдбреА рд╕реЗ рдореЗрд▓ рдЦрд╛рддрд╛ рд╣реИред рдпрд╣реА рд╣реИ, рдпрджрд┐ рдЖрдкрдХрд╛ FirstFragment рд╕реНрдХреНрд░реАрди SecondFragment рд╕реНрдХреНрд░реАрди рдкрд░ рдПрдХ рддрд░реНрдХ рджреЗрддреА рд╣реИ, рдФрд░ рдпрджрд┐ рдЙрдиреНрд╣реЗрдВ рдЬреЛрдбрд╝рдиреЗ рд╡рд╛рд▓реА рдХреНрд░рд┐рдпрд╛ рдХреЛ рдХрд╛рд░реНрд░рд╡рд╛рдИ_first_to_second рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рддреЛ рдпрд╣ рд╡рд╛рдВрдЫрд┐рдд FirstFragmentDirections.action_f_s_second () рд╡рд┐рдзрд┐ рд╣реИред
рдкреНрд░реЗрд╖рдХ рд╡рд░реНрдЧ рдореЗрдВ рдПрдХ рдЙрдкрд╡рд░реНрдЧ рднреА рд╢рд╛рдорд┐рд▓ рд╣реИ, рдЬреЛ рдКрдкрд░ рдЪрд░реНрдЪрд╛ рдХреА рдЧрдИ рд╡рд┐рдзрд┐ рдХрд╛ рд░рд┐рдЯрд░реНрди рдкреНрд░рдХрд╛рд░ рд╣реИред рдпрд╣реА рд╣реИ, рд╣рдорд╛рд░реЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдПрдХреНрд╢рди_рдлрд░реНрд╕реНрдЯ_рдЯреЛ_рд╕реЛрдХреЛрдВрдб () рдкрджреНрдзрддрд┐ рдХрд╛ рд░рд┐рдЯрд░реНрди рдкреНрд░рдХрд╛рд░ рдПрдХреНрд╢рди_рдлрд░реНрд╕реНрдЯ_рдЯреЛ_рд╕реЗрдВрдбрдХ рд╣реЛрдЧрд╛ред
рдкреНрд░рд╛рдкреНрддрдХрд░реНрддрд╛ рд╡рд░реНрдЧ рдХрд╛ рдореВрд▓ рдирд╛рдо рд╡рд╣реА рд╣реИ, рдЬрд┐рд╕рдХреЗ рдЕрдВрдд рдореЗрдВ рд╢рдмреНрдж Args рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИред рд╣рдорд╛рд░реЗ рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, SecondFragment рдореЗрдЬрдмрд╛рди рд╣реИ, рдЗрд╕рд▓рд┐рдП SecondFragmentArgs рд╡рд░реНрдЧ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЙрддреНрдкрдиреНрди рд╣реЛрддрд╛ рд╣реИред рдЗрд╕ рд╡рд░реНрдЧ рдореЗрдВ рддрд░реНрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ FromBundle () рд╡рд┐рдзрд┐ рд╣реИред
рд▓рдЧрднрдЧред рдЕрдиреБрд╡рд╛рджрдХ: рдЕрдм рд╕рдм рдХреБрдЫ рд╕реНрдкрд╖реНрдЯ рд╣реЛ рдЬрд╛рдПрдЧрд╛ред рдореИрдВрдиреЗ рдореВрд▓ рдХреЛрдб рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдЗрд╕ рдХреЛрдб рдХреЛ рдереЛрдбрд╝рд╛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ред рдкрд░рд┐рд╡рд░реНрддрди рдХреЗрд╡рд▓ рдЙрди рдирд╛рдореЛрдВ рдХреА рдЪрд┐рдВрддрд╛ рдХрд░рддреЗ рд╣реИрдВ, рдЬреЛ рдкреНрд░рддреНрдпреЗрдХ рдХреЗ рд▓рд┐рдП рдЕрд▓рдЧ-рдЕрд▓рдЧ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВред рдпрд╣ рд╕рдордЭрдиреЗ рдореЗрдВ рдЖрд╕рд╛рдиреА рдХреЗ рд▓рд┐рдП рд╣реИред рдпрд╣рд╛рдБ, myArgument рдирд╛рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рддрд░реНрдХ рдирд╛рдо рдХреЗ рд░реВрдк рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдЗрд╕рдХрд╛ рдкреНрд░рдХрд╛рд░ рд╕реНрдЯреНрд░рд┐рдВрдЧ рд╣реИред
рдпрд╣ рдХреЛрдб рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рддрд░реНрдХреЛрдВ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рд╕реЗрдлрдЧреНрд░рд╛рд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХреИрд╕реЗ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:
рдЬрд╛рд╡рд╛ @Override public void onClick(View view) { FirstFragmentDirections.Action_first_to_second action = FirstFragmentDirections.action_first_to_second(); action.setMyArgument("My argument value"); Navigation.findNavController(view).navigate(action); }
Kotlin override fun onClick(v: View?) { val action = FirstFragmentDirections.action_first_to_second action.myArgument = "My argument value" v.findNavController().navigate(action) }
рдпрд╣ рдХреЛрдб рджрд░реНрд╢рд╛рддрд╛ рд╣реИ рдХрд┐ рд╕реЗрдлрдЧрд░реНрд▓реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рддрд░реНрдХ рдХреИрд╕реЗ рдирд┐рдХрд╛рд▓реЗ рдЬрд╛рдПрдВ:
рдЬрд╛рд╡рд╛ @Override public void onViewCreated(View view, @Nullable Bundle savedInstanceState) { String myArgument = SecondFragmentArgs.fromBundle(getArguments()).getMyArgument(); }
Kotlin override fun onViewCreated(view: View, savedInstanceState: Bundle?) { val myArgument = SecondFragmentArgs.fromBundle(arguments).myArgument }
рд▓рдЧрднрдЧред рдЕрдиреБрд╡рд╛рджрдХ: рдореБрдЭреЗ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рддрд░реНрдХреЛрдВ рдХреЛ рдкрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХрд╛ рдпрд╣ рддрд░реАрдХрд╛ рдкрд╕рдВрдж рдЖрдпрд╛ред рдХреЛрдИ рдФрд░ рдЕрдзрд┐рдХ рдирд┐рдЬреА рд╕реНрдерд┐рд░ рдЕрдВрддрд┐рдо рд╕реНрдЯреНрд░рд┐рдВрдЧ MY_ARGUMENT_KEY = "MY_ARGUMENT" рдирд╣реАрдВред рдпрд╣ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рд╣реИ рдХрд┐ рдЕрдм рддрд░реНрдХ рдХреЛ рд╕реЗрдЯ рдФрд░ рдкреБрдирдГ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЗрд╕рдХреЗ рд╡реНрдпрдХреНрддрд┐ (!) рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
рдЧрдВрддрд╡реНрдп рд╕реНрдХреНрд░реАрди рдХреЛ рдиреЗрд╕реНрдЯреЗрдб рдЧреНрд░рд╛рдлрд╝ рдореЗрдВ рд╕рдореВрд╣рд┐рдд рдХрд░рдирд╛
рдЧрдВрддрд╡реНрдп рд╕реНрдХреНрд░реАрди рдХреЗ рджреГрд╢реНрдпреЛрдВ рдХреЛ рдПрдХ рд╕рдмрдЧреНрд░рд╛рдл рдореЗрдВ рд╕рдореВрд╣реАрдХреГрдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рд╕рдмрдЧреНрд░рд╛рдл рдХреЛ "рдиреЗрд╕реНрдЯреЗрдб рдЧреНрд░рд╛рдл" (рдиреЗрд╕реНрдЯреЗрдб рдЧреНрд░рд╛рдл) рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдФрд░ рдореВрд▓ рдЧреНрд░рд╛рдл "рд░реВрдЯ рдЧреНрд░рд╛рдл" (рд░реВрдЯ рдЧреНрд░рд╛рдл) рд╣реИ ред рдиреЗрд╕реНрдЯреЗрдб рдЧреНрд░рд╛рдлрд╝ рдЖрдкрдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдЗрдВрдЯрд░рдлрд╝реЗрд╕ рдХреЗ рдХреБрдЫ рд╣рд┐рд╕реНрд╕реЛрдВ рдХреЗ рдкреБрди: рдЙрдкрдпреЛрдЧ рдХреЛ рд╡реНрдпрд╡рд╕реНрдерд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрддреЗ рд╣реИрдВ, рдЬреИрд╕реЗ рдХрд┐ рдкреНрд░рд╛рдзрд┐рдХрд░рдг рдХреА рдПрдХ рд╢рд╛рдЦрд╛ (рд╕реНрдХреНрд░реАрди рдХрд╛ рдЕрдиреБрдХреНрд░рдо)ред
рд╕рд╛рде рд╣реА рд░реВрдЯ, рдиреЗрд╕реНрдЯреЗрдб рдЧреНрд░рд╛рдлрд╝ рдореЗрдВ рдПрдХ рд╕реНрдЯрд╛рд░реНрдЯ рд╕реНрдХреНрд░реАрди рд╣реЛрдиреА рдЪрд╛рд╣рд┐рдПред рдПрдХ рдиреЗрд╕реНрдЯреЗрдб рдЧреНрд░рд╛рдлрд╝ рдЕрдкрдиреЗ рдЧрдВрддрд╡реНрдп рд╕реНрдХреНрд░реАрди рдХреЛ рдПрдирдХреИрдкреНрд╕реБрд▓реЗрдЯ рдХрд░рддрд╛ рд╣реИред рдиреЗрд╕реНрдЯреЗрдб рдЧреНрд░рд╛рдлрд╝ рдХреЗ рдмрд╛рд╣рд░ рд╕реНрдХреНрд░реАрди, рдЬреИрд╕реЗ рд░реВрдЯ рдЧреНрд░рд╛рдлрд╝ рдХреА рд╕реНрдХреНрд░реАрди, рдиреЗрд╕реНрдЯреЗрдб рдЧреНрд░рд╛рдлрд╝ рдХреА рдХреЗрд╡рд▓ рд╢реБрд░реБрдЖрдд рд╕реНрдХреНрд░реАрди рддрдХ рдкрд╣реБрдБрдЪ рд╣реИред рдЪрд┐рддреНрд░ 6 рдПрдХ рд╕рд░рд▓ рдордиреА рдЯреНрд░рд╛рдВрд╕рдлрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдЧреНрд░рд╛рдл рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИред рдЧреНрд░рд╛рдлрд╝ рдХреА рджреЛ рд╢рд╛рдЦрд╛рдПрдБ рд╣реИрдВ: рдкреИрд╕реЗ рдЯреНрд░рд╛рдВрд╕рдлрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдФрд░ рд╢реЗрд╖ рд░рд╛рд╢рд┐ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдПред

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

рдЪрд┐рддреНрд░ 7. рдЧреНрд░рд╛рдл рд╕рдВрдкрд╛рджрдХ рдореЗрдВ рдиреЗрд╕реНрдЯреЗрдб рдЧреНрд░рд╛рдл - рдЗрд╕реЗ рдЪреБрдирдиреЗ рдХреЗ рд▓рд┐рдП рдиреЗрд╕реНрдЯреЗрдб рдЧреНрд░рд╛рдлрд╝ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рд╡рд┐рд╢реЗрд╖рддрд╛рдПрдВ рд╡рд┐рд╢реЗрд╖рддрд╛ рдкреИрдирд▓ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреЗрдиреА рдЪрд╛рд╣рд┐рдП:
- рдкреНрд░рдХрд╛рд░ рдлрд╝реАрд▓реНрдб рдореЗрдВ "рдиреЗрд╕реНрдЯреЗрдб рдЧреНрд░рд╛рдлрд╝" рд╣реЛрддрд╛ рд╣реИред
- ID рдлрд╝реАрд▓реНрдб рдореЗрдВ рдиреЗрд╕реНрдЯреЗрдб рдЧреНрд░рд╛рдлрд╝ рдХреЗ рд▓рд┐рдП рдЬрдирд░реЗрдЯ рдХреА рдЧрдИ ID рд╣реЛрддреА рд╣реИред
- рдиреЗрд╕реНрдЯреЗрдб рдЧреНрд░рд╛рдлрд╝ рдкрд░ рдбрдмрд▓-рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред рдиреЗрд╕реНрдЯреЗрдб рдЧреНрд░рд╛рдлрд╝ рдХреА рд╕реНрдХреНрд░реАрди рджрд┐рдЦрд╛рдИ рджреЗрдЧреАред
- рд╕реНрдХреНрд░реАрди (рдмрд╛рдПрдВ) рдХреА рд╕реВрдЪреА рдореЗрдВ, рд░реВрдЯ рдЧреНрд░рд╛рдлрд╝ рдкрд░ рд▓реМрдЯрдиреЗ рдХреЗ рд▓рд┐рдП рд░реВрдЯ рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред
- Text XML. . navigation . ID sendMoneyGraph startDestination chooseRecipient :
<?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>
- ID , , navigate() :
Java Navigation.findNavController(view).navigate(R.id.action_mainFragment_to_sendMoneyGraph);
Kotlin view.findNavController(view).navigate(R.id.action_mainFragment_to_sendMoneyGraph)
Android, ( deep link ) URI (, тАУ . ), - . URI - , .
- .
- + Depp Links . Add Deep Link .
- URI URI. "www.cashdog.com/sendmoney" ( www.cashdog.com , ).
URI:
- Auto Verify Google , URI . Android App Links .
- Add .
. - Text . :
<deepLink app:uri="https://cashdog.com/sendmoney"/>
Back, , . , , .
manifest.xml :
, .
Navigation , " " " ".
:
- . Navigation Property Animation View Animation . Animation Resources .
- , .
- Transitions , Enter. .
- , .
- Transitions , Exit. .
- , .
- Text . XML action. , . specifyAmountFragment , , :
<fragment android:id="@+id/specifyAmountFragment" android:name="com.example.buybuddy.buybuddy.SpecifyAmountFragment" android:label="fragment_specify_amount" tools:layout="@layout/fragment_specify_amount"> <action android:id="@+id/confirmationAction" app:destination="@id/confirmationFragment" app:enterAnim="@anim/slide_in_right" app:exitAnim="@anim/slide_out_left" app:popEnterAnim="@anim/slide_in_left" app:popExitAnim="@anim/slide_out_right" /> </fragment>
, ( enterAnim exitAnim ) ( popEnterAnim popExitAnim ).
- Navigation Editor, . , Report a bug .
Navigation . :
, , , . - . , . ! , - ( Android) тАУ .
UPD: : https://github.com/PrincessYork/android_navigation