рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд▓рд┐рдП рдиреЗрд╡рд┐рдЧреЗрд╢рди рдиреЗрд╡рд┐рдЧреЗрд╢рди рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдШрдЯрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛: рд╡реЙрдХрдереНрд░реВ

рдЖрдЗрдП, рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдЧрд╛рдЗрдб рдФрд░ рдХреЛрдб рдЙрджрд╛рд╣рд░рдгреЛрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рдиреЗрд╡рд┐рдЧреЗрд╢рди рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдШрдЯрдХ рдХреЗ рдорд╛рдирдХреЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░ рднрд╡рд┐рд╖реНрдп рдХреЗ рдорд▓реНрдЯреА-рд╕реНрдХреНрд░реАрди рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдПрдХ рдХрд╛рд░реНрдпрд╢реАрд▓ рдиреЗрд╡рд┐рдЧреЗрд╢рди рд╕рд┐рд╕реНрдЯрдо рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдПред рд▓реЗрдЦ рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдЕрдиреБрднрд╛рдЧ рд╢рд╛рдорд┐рд▓ рд╣реИрдВ:

рднрд╛рдЧ 1. рддреИрдпрд╛рд░реА рдХрд╛ рдХрд╛рдо
- 1.1ред рдкрд░рд┐рдпреЛрдЬрдирд╛ рдирд┐рд░реНрдорд╛рдг
- 1.2ред рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ (рдирд┐рд░реНрднрд░рддрд╛)
- 1.3ред рдкреЗрдЬ: рдЯреБрдХрдбрд╝реЗ рдмрдирд╛рдирд╛
- 1.4ред рдкрддреЗ: "рдиреЗрд╡рд┐рдЧреЗрд╢рди" рд╕рдВрд╕рд╛рдзрди рдлрд╝рд╛рдЗрд▓ рдЯрд╛рдЗрдк рдХрд░реЗрдВ
- 1.5ред рдлрд╝реНрд░реЗрдо: NavHostFragment рд╡рд┐рдЬреЗрдЯ
рднрд╛рдЧ 2. рдиреЗрд╡рд┐рдЧреЗрд╢рди рддрддреНрд╡
- 2.1ред рдмрдЯрди рдиреЗрд╡рд┐рдЧреЗрд╢рди
- 2.2ред рд╕рд╛рдЗрдб рдореЗрдиреВ (рджрд░рд╛рдЬ)
- 2.3ред рдЯреВрд▓рдмрд╛рд░: ActionBar рдХреЗ рдмрдЬрд╛рдп рдЯреВрд▓рдмрд╛рд░
- 2.4ред рдирд┐рдЪрд▓рд╛ рдореЗрдиреВ (рдирд┐рдЪрд▓рд╛ рдиреЗрд╡рд┐рдЧреЗрд╢рди)
- 2.5ред рдкреЙрдк-рдЕрдк рдореЗрдиреВ
рд╕рд╛рд░рд╛рдВрд╢ рдФрд░ рдЬреАрдердм рд▓рд┐рдВрдХ

рднрд╛рдЧ 1. рддреИрдпрд╛рд░реА рдХрд╛ рдХрд╛рдо


1.1ред рдкрд░рд┐рдпреЛрдЬрдирд╛ рдирд┐рд░реНрдорд╛рдг


рд╣рдореЗрдВ рдХреЛрдЯрд▓рд┐рди , рдЖрдИрдбреАрдИ рдПрдВрдбреНрд░реЙрдЗрдб рд╕реНрдЯреВрдбрд┐рдпреЛ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рдмреБрдирд┐рдпрд╛рджреА рдЬреНрдЮрд╛рди рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрдЧреА рдЬреЛ 3.3 рд╕реЗ рдХрдо рдирд╣реАрдВ рд╣реИ, рдПрдХ рд╕реНрдорд╛рд░реНрдЯрдлреЛрди рдпрд╛ рдПрдкреАрдЖрдИ рд╕рдВрд╕реНрдХрд░рдг 14 рдХреЗ рд╕рд╛рде рдПрдореБрд▓реЗрдЯрд░ред

рдЖрдЗрдП "рдиреЗрд╡рд┐рдЧреЗрд╢рди2019" рдирд╛рдордХ рдПрдВрдбреНрд░реЙрдЗрдб рд╕реНрдЯреВрдбрд┐рдпреЛ рдореЗрдВ рдПрдХ рдирдпрд╛ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдмрдирд╛рдПрдВред





IDE рдореБрдЦреНрдп рдЧрддрд┐рд╡рд┐рдзрд┐ рдлрд╝рд╛рдЗрд▓ "MainActivity.kt" рдФрд░ рдЗрд╕рдХрд╛ рд▓реЗрдЖрдЙрдЯ (рдЯреЗрдореНрдкрд▓реЗрдЯ) "activity_main.xml" рдмрдирд╛рдПрдЧрд╛ред



1.2ред рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ (рдирд┐рд░реНрднрд░рддрд╛)


рдореЙрдбреНрдпреВрд▓ рдХреА рдлрд╝рд╛рдЗрд▓ "build.gradle" рдЦреЛрд▓реЗрдВ (рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдирд╣реАрдВ, рд▓реЗрдХрд┐рди рдореЙрдбреНрдпреВрд▓) рдФрд░ рдмреНрд▓реЙрдХ "рдирд┐рд░реНрднрд░рддрд╛" рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдирд┐рд░реНрднрд░рддрд╛ рдЬреЛрдбрд╝реЗрдВ:

def nav_version = ┬л1.0.0┬╗ implementation ┬лandroid.arch.navigation:navigation-fragment-ktx:$nav_version┬╗ implementation ┬лandroid.arch.navigation:navigation-ui-ktx:$nav_version┬╗ 



рд╣рдордиреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рд╕рдВрд╕реНрдХрд░рдг 1.0.0 рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рднрд╡рд┐рд╖реНрдп рдореЗрдВ рд╕реНрдерд┐рддрд┐ рдмрджрд▓ рд╕рдХрддреА рд╣реИред рдпрд╣рд╛рдВ рджреЗрдЦреЗрдВ рдХрд┐ рдХреМрди рд╕реЗ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╕рдВрд╕реНрдХрд░рдг рдкреНрд░рд╛рд╕рдВрдЧрд┐рдХ рд╣реИрдВ ред

1.3ред рдкреЗрдЬ: рдЯреБрдХрдбрд╝реЗ рдмрдирд╛рдирд╛


рдЯреБрдХрдбрд╝реЗ рд╣рдорд╛рд░реЗ рднрд╡рд┐рд╖реНрдп рдХреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдХреЗ "рдкреГрд╖реНрда" рд╣реИрдВред "рдирдИ -> рдЯреБрдХрдбрд╝рд╛ -> рдЯреБрдХрдбрд╝рд╛ (рд░рд┐рдХреНрдд)" рдХрдорд╛рдВрдб "Fragment1" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ, рд╡рд░реНрдЧ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рд╕рд╛рде рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдкрд░ рд░рд╛рдЗрдЯ-рдХреНрд▓рд┐рдХ рдХрд░реЗрдВред





рдЖрдИрдбреАрдИ рдПрдХ рдЦрдВрдб рдлрд╝рд╛рдЗрд▓ рдХреЗ рд╕рд╛рде рдПрдХ рдХреЗрдЯреА рдлрд╝рд╛рдЗрд▓ рдФрд░ рдПрдХ рдЦрдВрдб рд▓реЗрдЖрдЙрдЯ рдХреЗ рд╕рд╛рде рдПрдХ xml рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдЧрд╛ред рдЙрд╕реА рддрд░рд╣, рд╣рдо рддреАрди рдФрд░ рдЯреБрдХрдбрд╝реЗ рдЙрддреНрдкрдиреНрди рдХрд░рддреЗ рд╣реИрдВ ("Fragment2", "Fragment3", "Fragment4")ред рд╣рдо рдЙрдиреНрд╣реЗрдВ рдЪрд╛рд░ рдЕрд▓рдЧ-рдЕрд▓рдЧ рдкреНрд░рдХрд╛рд░ рдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдиреЗрд╡рд┐рдЧреЗрд╢рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗред

1.4ред рдкрддреЗ: "рдиреЗрд╡рд┐рдЧреЗрд╢рди" рд╕рдВрд╕рд╛рдзрди рдлрд╝рд╛рдЗрд▓ рдЯрд╛рдЗрдк рдХрд░реЗрдВ


"рд░реЗрд╕" рдлрд╝реЛрд▓реНрдбрд░ рдкрд░ рд░рд╛рдЗрдЯ-рдХреНрд▓рд┐рдХ рдХрд░рдХреЗ, "path.xml" ("рдорд╛рд░реНрдЧреЛрдВ") рдирд╛рдо рдХреЗ рд╕рд╛рде "рдиреЗрд╡рд┐рдЧреЗрд╢рди" рдкреНрд░рдХрд╛рд░ рдХреА рдПрдХ рд╕рдВрд╕рд╛рдзрди рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдВред





рдЖрдЗрдП рдмрдирд╛рдИ рдЧрдИ рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓реЗрдВ рдФрд░ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдЖрд░реЗрдЦ рдореЗрдВ рд╣рдорд╛рд░реЗ рдЯреБрдХрдбрд╝реЗ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП "рдирдпрд╛ рдЧрдВрддрд╡реНрдп" рдмрдЯрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред





"рд▓реЛрднреА" рдЯреБрдХрдбрд╝реЗ рдХреЗ рджрд╛рдИрдВ рдУрд░ рдХреЗ рдмреАрдЪ рдореЗрдВ рдорд╛рдЙрд╕ , рдЯреБрдХрдбрд╝реЗ рдХреЛ рдПрдХ рджреВрд╕рд░реЗ рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ рдХреНрдпреЛрдВрдХрд┐ рдЙрдиреНрд╣реЗрдВ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдореЗрдВ рдЬреЛрдбрд╝рд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдПред



рдЙрдирдХреЗ рдирд╛рдореЛрдВ рдХреЗ рдЕрдиреБрд╕рд╛рд░, рд╣рдорд╛рд░реЗ рдЯреБрдХрдбрд╝реЛрдВ рдХреЛ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛ (рдЖрдИрдбреА) "рдЦрдВрдб 1", "рдЦрдВрдб 2", "рдЦрдВрдб 3", "рдЦрдВрдб 4" рдкреНрд░рд╛рдкреНрдд рд╣реЛрдВрдЧреЗред рдпреЗ "рдкрддреЗ" рд╣реИрдВ рдЬреЛ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдирд┐рдпрдВрддреНрд░рдХ рдХреЗ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдореЗрдВ рдЧрдВрддрд╡реНрдпреЛрдВ рдХреЛ рдЗрдВрдЧрд┐рдд рдХрд░рддреЗ рд╕рдордп рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗред

"рдЖрдИрдбреА" рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкреНрд░рддреНрдпреЗрдХ рдЯреИрдЧ "рдЯреБрдХрдбрд╝реЗ" рдореЗрдВ рддреАрди рдФрд░ рдкреИрд░рд╛рдореАрдЯрд░ рд╣реЛрддреЗ рд╣реИрдВ: "рдирд╛рдо", "рд▓реЗрдмрд▓" рдФрд░ "рд▓реЗрдЖрдЙрдЯ"ред "рдирд╛рдо" рдФрд░ "рд▓реЗрдЖрдЙрдЯ" рдкреИрд░рд╛рдореАрдЯрд░ рдЕрдм рд╣рдорд╛рд░реЗ рд▓рд┐рдП рд░реБрдЪрд┐ рдХреЗ рдирд╣реАрдВ рд╣реИрдВред "рдорд╛рд░реНрдЧреЛрдВ.xml" рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд╕рдВрдкрд╛рджрди рдХреЗ рд▓рд╛рдпрдХ рдПрдХрдорд╛рддреНрд░ рдЪреАрдЬрд╝ рдЯреБрдХрдбрд╝реЛрдВ рдХреЗ рдирд╛рдо ("рд▓реЗрдмрд▓") рд╣реИред рдЙрдиреНрд╣реЗрдВ "рдЯреБрдХрдбрд╝рд╛ рдирдВрдмрд░ 1", "рдЯреБрдХрдбрд╝рд╛ рдирдВрдмрд░ 2", "рдЯреБрдХрдбрд╝рд╛ рдирдВрдмрд░ 3" рдФрд░ "рдЯреБрдХрдбрд╝рд╛ рдирдВрдмрд░ 4" рдХреЗ рд╕рд╛рде рдмрджрд▓реЗрдВред



1.5ред рдлрд╝реНрд░реЗрдо: NavHostFragment рд╡рд┐рдЬреЗрдЯ


рд▓реЗрдЖрдЙрдЯ рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓реЗрдВ "res / layout / activity_main.xml" рдФрд░ рдкрд╛рда рд╡рд┐рдЬреЗрдЯ "рд╣реИрд▓реЛ рд╡рд░реНрд▓реНрдб!" рдХреЛ рд╣рдЯрд╛рдПрдВ, рд╣рдореЗрдВ рдЗрд╕рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред рдкреИрд▓реЗрдЯ рдореЗрдВ, "рдХрдВрдЯреЗрдирд░" рдЕрдиреБрднрд╛рдЧ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ рдФрд░ рдЧрддрд┐рд╡рд┐рдзрд┐ рд▓реЗрдЖрдЙрдЯ рдкрд░ рдирд╡рд╣реЙрд╕реНрдЯрдлреНрд░реИрдЧрдореЗрдВрдЯ рд╡рд┐рдЬреЗрдЯ рдХреЛ рд╡рд╣рд╛рдВ рд╕реЗ рдЦреАрдВрдЪреЗрдВ (рд╣рдорд╛рд░реЗ "рдорд╛рд░реНрдЧреЛрдВ" рдлрд╝рд╛рдЗрд▓ рдХреЛ рдЗрд╕рдХреЗ рд▓рд┐рдП рдЬрд╛рдирдХрд╛рд░реА рдХреЗ рд╕реНрд░реЛрдд рдХреЗ рд░реВрдк рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░реЗрдВ)ред рдпрд╣ рдПрдХ рдлреНрд░реЗрдо рдХреА рднреВрдорд┐рдХрд╛ рдХреЛ рдкреВрд░рд╛ рдХрд░реЗрдЧрд╛ рдЬрд┐рд╕рдореЗрдВ рдЖрд╡реЗрджрди рдХреЗ рд╡рд┐рднрд┐рдиреНрди рдЯреБрдХрдбрд╝реЗ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗред





рдЯреБрдХрдбрд╝реЗ рдХреА рдЖрдИрдбреА рдХреЛ "рдиреЗрд╡рдлреНрд░реИрдЧрдореЗрдВрдЯ" рдореЗрдВ рдмрджрд▓реЗрдВред рдореБрдЦреНрдп рдЧрддрд┐рд╡рд┐рдзрд┐ рдХреЗ рд▓рд┐рдП рд▓реЗрдЖрдЙрдЯ рдХреЛрдб рдЕрдм рдЗрд╕ рддрд░рд╣ рджрд┐рдЦреЗрдЧрд╛:



рдЗрд╕ рдкрд░, рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдХрд╛рд░реНрдп рдкреВрд░рд╛ рд╣реЛ рдЧрдпрд╛ рд╣реИ, рдЕрдм рдЖрдк рд╕реАрдзреЗ рдиреЗрд╡рд┐рдЧреЗрд╢рди рддрддреНрд╡реЛрдВ рдХреЗ рдирд┐рд░реНрдорд╛рдг рдХреЗ рд▓рд┐рдП рдЖрдЧреЗ рдмрдврд╝ рд╕рдХрддреЗ рд╣реИрдВред

рднрд╛рдЧ 2. рдиреЗрд╡рд┐рдЧреЗрд╢рди рддрддреНрд╡


2.1ред рдмрдЯрди рдиреЗрд╡рд┐рдЧреЗрд╢рди


рдкрд╣рд▓реЗ рдЯреБрдХрдбрд╝реЗ рдХрд╛ рд▓реЗрдЖрдЙрдЯ рдЦреЛрд▓реЗрдВ ("fragment_fragment1.xml")ред рдЕрдирд╛рд╡рд╢реНрдпрдХ рдЯреЗрдХреНрд╕реНрдЯ рд╡рд┐рдЬреЗрдЯ рдХреЛ рд╣рдЯрд╛рдПрдВ, рд▓реЗрдЖрдЙрдЯ рдкреНрд░рдХрд╛рд░ рдХреЛ "рдлреНрд░реЗрдорд▓реИрдЯрдЖрдЙрдЯ" рд╕реЗ рд░реИрдЦрд┐рдХ рдКрд░реНрдзреНрд╡рд╛рдзрд░ рдореЗрдВ рдмрджрд▓реЗрдВ рдФрд░ рдкрд╣рдЪрд╛рдирдХрд░реНрддрд╛рдУрдВ рдХреЗ рд╕рд╛рде рддреАрди рдмрдЯрди рдЬреЛрдбрд╝реЗрдВ "рдмрдЯрди 2", "рдмрдЯрди 3", "рдмрдЯрди 4" рдФрд░ рд╕рдВрдмрдВрдзрд┐рдд рдирд╛рдо "рдлреНрд░реЗрдЧреНрдореЗрдВрдЯ 2", "рдлреНрд░реЗрдЧреНрдореЗрдВрдЯ 3", "рдлреНрд░реЗрдЧреНрдореЗрдВрдЯ 4"ред



рдЯреБрдХрдбрд╝реЗ рдХреЗ "onCreateView" рд╡рд┐рдзрд┐ рдореЗрдВ, рд╣рдо рдиреЗрд╡рд┐рдЧреЗрд╢рди рдирд┐рдпрдВрддреНрд░рдХ ("NavController" рдСрдмреНрдЬреЗрдХреНрдЯ) рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХ рдкреНрд░рд╛рдкреНрдд рдХрд░рддреЗ рд╣реИрдВ рдФрд░ рдмрдЯрди рджрдмрд╛рдП рдЬрд╛рдиреЗ рдкрд░ рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХрд░рддреЗ рд╣реИрдВ: "setOnClickListener" рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде, рдкреНрд░рддреНрдпреЗрдХ рдмрдЯрди рдХреЗ рд▓рд┐рдП рд╣рдо рдПрдХ рдмрдЯрди рд╢реНрд░реЛрддрд╛ рдмрдирд╛рддреЗ рд╣реИрдВ рдЬреЛ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдкрд░, рдиреЗрд╡рд┐рдЧреЗрд╢рди рдирд┐рдпрдВрддреНрд░рдХ (рдЖрдИрдбреА) рдЖрдИрдбреА рдкрд░ рднреЗрдЬ рджреЗрдЧрд╛ред рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкрддреЗ рдкрд░ рдиреЗрд╡рд┐рдЧреЗрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрдорд╛рдВрдб рдХреЗ рд╕рд╛рде рдЧрдВрддрд╡реНрдпред



рдЖрдЗрдП рджреЗрдЦреЗрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдмрдЯрди рдХреИрд╕реЗ рдХрд╛рдо рдХрд░рддреЗ рд╣реИрдВред



рдПрдХ рдмрдЯрди - рдХреЛрдб рдХреА рдПрдХ рдкрдВрдХреНрддрд┐ - рдФрд░ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рд╕реЗ рд╣рдо рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЯреБрдХрдбрд╝реЗ рдкрд░ рдЪрд▓реЗ рдЬрд╛рддреЗ рд╣реИрдВред рд╕рд░рд▓, рд╕рд╣реА?

рд▓реЗрдХрд┐рди рдореЗрдиреВ рдХреЗ рдмрд┐рдирд╛ рдпрд╣ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдирд╣реАрдВ рд╣реИ, рдЖрдкрдХреЛ рд╕реНрдЯрд╛рд░реНрдЯ рд╕реНрдХреНрд░реАрди рдкрд░ рд▓реМрдЯрдиреЗ рдХреЗ рд▓рд┐рдП "рдмреИрдХ" рдмрдЯрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред

2.2ред рд╕рд╛рдЗрдб рдореЗрдиреВ (рджрд░рд╛рдЬ)


2.2.1ред рдореЗрдиреВ рд╕рдВрд╕рд╛рдзрди рдлрд╝рд╛рдЗрд▓


"рд░рд┐рд╕ / рдореЗрдиреВ" рдирд┐рд░реНрджреЗрд╢рд┐рдХрд╛ рдореЗрдВ, рдПрдХ рд╕рдВрд╕рд╛рдзрди рдореЗрдиреВ рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдПрдБ "drawer_menu.xml"ред рд╣рдо рдЗрд╕рдореЗрдВ рдореЗрдиреВ рдЖрдЗрдЯрдо рдЬреЛрдбрд╝рддреЗ рд╣реИрдВ, рдЬрд┐рдирдореЗрдВ рд╕реЗ рдкреНрд░рддреНрдпреЗрдХ "рдЖрдИрдбреА" рдкреИрд░рд╛рдореАрдЯрд░ рдХреЗ рд╕рд╛рде рдПрдХ рдЯреИрдЧ "рдЖрдЗрдЯрдо" рд╣реИ (рдЬреЛ рдХрд┐ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдХреЙрд▓рдо "рдорд╛рд░реНрдЧреЛрдВ.xml", "рд╢реАрд░реНрд╖рдХ" (рд╢реАрд░реНрд╖рдХ, рдпрд╣ рдЕрд▓рдЧ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ) рдХреЗ рдЕрдиреБрд░реВрдк рд╣реЛрдирд╛ рдЪрд╛рд╣рд┐рдП, "рдЖрдЗрдХрди" (рд╣рдо рд╣рдо рд╕рднреА рд╡рд╕реНрддреБрдУрдВ рдХреЗ рд▓рд┐рдП рдПрдХ рд╣реА рдЪрд┐рддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди, рдирд┐рд╢реНрдЪрд┐рдд рд░реВрдк рд╕реЗ, рд╡реЗ рдЕрд▓рдЧ рд╣реЛ рд╕рдХрддреЗ рд╣реИрдВ), рдЖрджрд┐ рд╣рдорд╛рд░рд╛ рдореЗрдиреВ рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрд╛рдИ рджреЗрдЧрд╛:



2.2.2ред рдЧрддрд┐рд╡рд┐рдзрд┐ рд▓реЗрдЖрдЙрдЯ рдореЗрдВ рдбреНрд░реЙрдЕрд░рдЖрдЙрдЯ рдЯреЗрдореНрдкрд▓реЗрдЯ рдФрд░ рдиреЗрд╡рд┐рдЧреЗрд╢рди рд╡реНрдпреВ рд╡рд┐рдЬреЗрдЯ


рдЧрддрд┐рд╡рд┐рдзрд┐ рд▓реЗрдЖрдЙрдЯ рдлрд╝рд╛рдЗрд▓ "activity_main.xml" рдЦреЛрд▓реЗрдВред

рдкрд╣рд▓реЗ рдЯреИрдЧ (xml рд╕рдВрд╕реНрдХрд░рдг ...) рдХреЗ рдмрд╛рдж рдЯреИрдЧ "DrawerLayout" рдХреА рд╢реБрд░реБрдЖрдд рдЬреЛрдбрд╝реЗрдВред



рдлрд╝рд╛рдЗрд▓ рдХреЗ рдЕрдВрдд рдореЗрдВ, "рдиреЗрд╡реАрдЧреЗрд╢рди рд╡реНрдпреВ" рд╡рд┐рдЬреЗрдЯ рдФрд░ "рдбреНрд░рд╛рдЕрд░ рд▓рдпрдЖрдЙрдЯ" рдЯреИрдЧ рдХреЗ рдЕрдВрдд рдореЗрдВ рдЬреЛрдбрд╝реЗрдВред



2.2.3ред рдПрдХ рдЧрддрд┐рд╡рд┐рдзрд┐ рд╡рд░реНрдЧ рдореЗрдВ рдПрдХ рд╕рд╛рдЗрдб рдореЗрдиреВ рдХрдиреЗрдХреНрдЯ рдХрд░рдирд╛


рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓реЗрдВ "MainActivity.kt" рдФрд░ "onCreate" рд╡рд┐рдзрд┐ рдореЗрдВ рд╣рдореЗрдВ "navController" рдХреЗ рд▓рд┐рдП рдПрдХ рд▓рд┐рдВрдХ рдорд┐рд▓рддрд╛ рд╣реИ (рдЧрддрд┐рд╡рд┐рдзрд┐ рдореЗрдВ рдпрд╣ рдЯреБрдХрдбрд╝реЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ рдереЛрдбрд╝рд╛ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рджрд┐рдЦрддрд╛ рд╣реИ)ред



рдлрд┐рд░ рд╕рд╛рдЗрдб рдореЗрдиреВ рдЪрд╛рд▓реВ рдХрд░реЗрдВ:



рд╡рд░реНрдЧ рдХреЛрдб рдЕрдм рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:



рдЕрдм рд╕реНрдХреНрд░реАрди рдХреЗ рдмрд╛рдПрдВ рдХрд┐рдирд╛рд░реЗ рд╕реЗ рд╕реНрд╡рд╛рдЗрдк рдХреЗ рдЬрд╡рд╛рдм рдореЗрдВ рдореЗрдиреВ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИ:



рд╕рд╛рдЗрдб рдореЗрдиреВ, рджрд╛рдИрдВ рдУрд░ рдХреЙрд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдКрдкрд░ рдмрд╛рдИрдВ рдУрд░ рдПрдХ рдмрдЯрди рдЬреЛрдбрд╝рдирд╛ рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛?

2.3ред рдЯреВрд▓рдмрд╛рд░ рдкрд░ рдмрдЯрди рдФрд░ рдЯреБрдХрдбрд╝реЗ рдХрд╛ рдирд╛рдо


рдбрд┐рдлрд╝реЙрд▓реНрдЯ ActionBar, рдЖрдзрд┐рдХрд╛рд░рд┐рдХ рдЧрд╛рдЗрдб рджреНрд╡рд╛рд░рд╛ рдЕрдиреБрд╢рдВрд╕рд┐рдд рдХреЗ рд░реВрдк рдореЗрдВ, рдЯреВрд▓рдмрд╛рд░ рджреНрд╡рд╛рд░рд╛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред

рдХрд┐рд╕реА рдореМрдЬреВрджрд╛ ActionBar рдХреЛ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдлрд╝рд╛рдЗрд▓ рдореЗрдВ "res / рдорд╛рди / рд╕реНрдЯрд╛рдЗрд▓.xml" рд╣рдо рд▓рд╛рдЗрди рдкрд╛рддреЗ рд╣реИрдВ

 <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> 

рдФрд░ "DarkActionBar" рдХреЛ "NoActionBar" рд╕реЗ рдмрджрд▓реЗрдВред



рдорд╣рд╛рди, рд╣рдордиреЗ ActionBar рдХреЛ рдирд┐рд╖реНрдХреНрд░рд┐рдп рдХрд░ рджрд┐рдпрд╛ред



рдЕрдм рдЯреВрд▓рдмрд╛рд░ рдЬреЛрдбрд╝реЗрдВред рдлрд╝рд╛рдЗрд▓ рдЦреЛрд▓реЗрдВ "activity_main.xml", рдкреИрд▓реЗрдЯ рдореЗрдВ "рдХрдВрдЯреЗрдирд░" рдЕрдиреБрднрд╛рдЧ рдЪреБрдиреЗрдВ рдФрд░ рдЧрддрд┐рд╡рд┐рдзрд┐ рд▓реЗрдЖрдЙрдЯ рдкрд░ "рдЯреВрд▓рдмрд╛рд░" рд╡рд┐рдЬреЗрдЯ рдХреЛ рд╡рд╣рд╛рдВ рд╕реЗ рдЦреАрдВрдЪреЗрдВред рдЯреВрд▓рдмрд╛рд░ рдЬреЛрдбрд╝рд╛ рдЧрдпрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ рдЕрднреА рддрдХ рдЦрд╛рд▓реА рд╣реИред



рдЧрддрд┐рд╡рд┐рдзрд┐ рдлрд╝рд╛рдЗрд▓ "MainActivity.kt" рдкрд░ рдЬрд╛рдПрдВред рдЯреВрд▓рдмрд╛рд░ рдкрд░ рдмрдЯрди рдФрд░ рд╡рд░реНрддрдорд╛рди рдЯреБрдХрдбрд╝реЗ рдХреЗ рдирд╛рдо рдХреЛ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдкрдВрдХреНрддрд┐рдпреЛрдВ рдХреЛ "onCreate ()") рдореЗрдВ рдЬреЛрдбрд╝реЗрдВ:



рдЯреВрд▓рдмрд╛рд░ рдЕрдм рдиреЗрд╕реНрдЯреЗрдб рдЯреБрдХрдбрд╝реЛрдВ рдХреЗ рд▓рд┐рдП рдЦрдВрдб рдирд╛рдо рдФрд░ рдЕрдк рдмрдЯрди рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд░рддрд╛ рд╣реИред



рдПрдВрдбреНрд░реЙрдЗрдб рдореЗрдВ рдЕрдк рдмрдЯрди рдмрд╛рдПрдВ рддреАрд░ рджреНрд╡рд╛рд░рд╛ рдЗрдВрдЧрд┐рдд рдХрд┐рд╕реА рдХрд╛рд░рдг рдХреЗ рд▓рд┐рдП рд╣реИ:



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





рдЗрд╕ рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рд╕реЗ рд╕рд╛рдЗрдб рдореЗрдиреВ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИред



2.4ред рдирд┐рдЪрд▓рд╛ рдореЗрдиреВ (рдирд┐рдЪрд▓рд╛ рдиреЗрд╡рд┐рдЧреЗрд╢рди)


рдХрднреА-рдХрднреА рдХреБрдЫ рдХрд╛рд░реНрдпреЛрдВ рдкрд░ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛ рдХрд╛ рдзреНрдпрд╛рди рдХреЗрдВрджреНрд░рд┐рдд рдХрд░рдирд╛ рдЖрд╡рд╢реНрдпрдХ рд╣реЛрддрд╛ рд╣реИ, рдФрд░ рдиреАрдЪреЗ рдореЗрдиреВ рдкреНрд░рднрд╛рд╡реА рд░реВрдк рд╕реЗ рдРрд╕рд╛ рдХрд░рдиреЗ рдореЗрдВ рдорджрдж рдХрд░рддрд╛ рд╣реИред рдЗрд╕реЗ рддреАрд╕рд░реЗ рдЯреБрдХрдбрд╝реЗ рдореЗрдВ рдЬреЛрдбрд╝реЗрдВред

рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ, рд▓рд┐рдВрдХ рдХреЗ рдПрдХ рдЬреЛрдбрд╝реЗ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдВрд╕рд╛рдзрди рдореЗрдиреВ рдлрд╝рд╛рдЗрд▓ "bottom_nav_menu.xml" рдмрдирд╛рдПрдВред рдлрд┐рд░, рдЦрдВрдб # 3 рдХрд╛ рд▓реЗрдЖрдЙрдЯ рдЦреЛрд▓реЗрдВ (рдлрд╝рд╛рдЗрд▓ "fragment_fragment3.xml") рдФрд░ рдЙрд╕ рдкрд░ "рдмреЙрдЯрдирд╡реНрдпреВрдЬрд╝ рд╡реНрдпреВ" рд╡рд┐рдЬреЗрдЯ рдХреЛ рдЦреАрдВрдЪреЗрдВ, рд╕рд╛рде рд╣реА рд╕рд╛рде com.android.support.design рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдирд┐рд░реНрднрд░рддрд╛ рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреЗ рд▓рд┐рдП IDE рдХреЗ рдкреНрд░рд╕реНрддрд╛рд╡ рд╕реЗ рд╕рд╣рдордд рд╣реИрдВред





рдпрджрд┐ рд╣рдордиреЗ рдиреАрдЪреЗ рдХрд╛ рдореЗрдиреВ рдПрдХ рдЯреБрдХрдбрд╝реЗ рдХреЗ рд▓рд┐рдП рдирд╣реАрдВ, рдмрд▓реНрдХрд┐ рдПрдХ рдмрд╛рд░ рдореЗрдВ рд╕рднреА рдХреЗ рд▓рд┐рдП рдмрдирд╛рдпрд╛ рд╣реИ, рддреЛ рд╣рдореЗрдВ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдХреЛрдб рдХреЛ рдЧрддрд┐рд╡рд┐рдзрд┐ рд╡рд░реНрдЧ рдХреЗ рдСрдирдХреНрд░рд┐рдПрдЯ рд╡рд┐рдзрд┐ (рдлрд╝рд╛рдЗрд▓ "MainActivity.kt") рдореЗрдВ рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛:



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

рд▓реЗрдХрд┐рди рдЬрдм рд╕реЗ рд╣рдореЗрдВ рдХреЗрд╡рд▓ рдЦрдВрдб рд╕рдВрдЦреНрдпрд╛ 3 рдореЗрдВ рдЗрд╕ рдореЗрдиреВ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ, рд╣рдо рдЯреБрдХрдбрд╝реЗ рд╡рд░реНрдЧ (рдлрд╝рд╛рдЗрд▓ "Fragment3.kt") рдХреЛ рд╕рдВрдкрд╛рджрд┐рдд рдХрд░реЗрдВрдЧреЗ, рдФрд░ рдХреЛрдб рдереЛрдбрд╝рд╛ рдФрд░ рдЕрдзрд┐рдХ рдЬрдЯрд┐рд▓ рджрд┐рдЦреЗрдЧрд╛:



рдирддреАрдЬрддрди, рд╣рдореЗрдВ рдиреАрдЪреЗ рдореЗрдиреВ рдорд┐рд▓рддрд╛ рд╣реИ, рдЬреЛ рдХреЗрд╡рд▓ 3 рдЯреБрдХрдбрд╝реЗ рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрдЧрд╛ред



рд╡рд╣реА, рд▓реЗрдХрд┐рди рдЕрдиреНрдп рд▓рд┐рдВрдХ рдХреЗ рд╕рд╛рде, рд╣рдо 4 рд╡реЗрдВ рдЯреБрдХрдбрд╝реЗ рдореЗрдВ рдХрд░реЗрдВрдЧреЗред

2.5ред рдкреЙрдк-рдЕрдк рдореЗрдиреВ


рдПрдХ рдЕрдиреНрдп рдкреНрд░рдХрд╛рд░ рдХрд╛ рдореЗрдиреВ рдПрдХ рдкреЙрдк-рдЕрдк рдореЗрдиреВ рд╣реИ рдЬреЛ рд╕реНрдХреНрд░реАрди рдХреЗ рдКрдкрд░реА рджрд╛рдПрдВ рдХреЛрдиреЗ рдореЗрдВ рдмрдЯрди (рддреАрди рд▓рдВрдмрд╡рдд рд╕реНрдерд┐рдд рдбреЙрдЯреНрд╕) рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░рдиреЗ рдкрд░ рджрд┐рдЦрд╛рдИ рджреЗрддрд╛ рд╣реИред



рдЖрд╡рд╢реНрдпрдХ рд▓рд┐рдВрдХ рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдВрд╕рд╛рдзрди рдореЗрдиреВ рдлрд╝рд╛рдЗрд▓ "top_right_menu.xml" рдмрдирд╛рдПрдВред

"MainActivity" рдлрд╝рд╛рдЗрд▓ рдореЗрдВ, "onCreate" рд╡рд┐рдзрд┐ рдореЗрдВ, "toolBar.setupWithNavController ..." рд▓рд╛рдЗрди рд╕реЗ рдкрд╣рд▓реЗ "setSupportActionBar (toolBar)" рдЬреЛрдбрд╝реЗрдВред



рдФрд░ рдЖрдЧреЗ рдЙрд╕реА рдХрдХреНрд╖рд╛ рдореЗрдВ рд╣рдо рджреЛ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдлрд┐рд░ рд╕реЗ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддреЗ рд╣реИрдВ:



рд╢реАрд░реНрд╖ рджрд╛рдпрд╛рдВ рдмрдЯрди рджрдмрд╛рдиреЗ рдкрд░ рдЕрдм рдПрдХ рдкреЙрдкрдЕрдк рдореЗрдиреВ рдкреНрд░рджрд░реНрд╢рд┐рдд рд╣реЛрддрд╛ рд╣реИ:



рд╕рд╛рд░рд╛рдВрд╢ рдФрд░ рдЬреАрдердм рд▓рд┐рдВрдХ


рдЬрд╛рд╣рд┐рд░ рд╣реИ, рдиреЗрд╡рд┐рдЧреЗрд╢рди рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдШрдЯрдХ рдбреЗрд╡рд▓рдкрд░ рдХреЗ рдХрд╛рдо рдХреЛ рдмрд╣реБрдд рд╕реБрд╡рд┐рдзрд╛рдЬрдирдХ рдмрдирд╛рддрд╛ рд╣реИред рдЕрддреАрдд рдореЗрдВ рдореБрд╢реНрдХрд┐рд▓ рдХрд╛рдо рдЕрдм рдХреЛрдб рдХреА рдХреБрдЫ рд▓рд╛рдЗрдиреЛрдВ рдХреЗ рд╕рд╛рде рд╣рд▓ рд╣реЛ рдЧрдП рд╣реИрдВред

рдЪреВрдВрдХрд┐ рдЗрд╕ рдкреНрд░рдХрд╛рд╢рди рдХрд╛ рдореБрдЦреНрдп рдЙрджреНрджреЗрд╢реНрдп рдПрдВрдбреНрд░реЙрдЗрдб рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдореЗрдВ рдиреЗрд╡рд┐рдЧреЗрд╢рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдмреБрдирд┐рдпрд╛рджреА рдПрд▓реНрдЧреЛрд░рд┐рджрдо рдХреЛ рд░реЛрд╢рди рдХрд░рдирд╛ рдерд╛, рдЗрд╕рд▓рд┐рдП рдХрдИ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рд╡рд┐рд╡рд░рдг рдЬрд╛рдирдмреВрдЭрдХрд░ рдкрд░реНрджреЗ рдХреЗ рдкреАрдЫреЗ рдЫреЛрдбрд╝ рджрд┐рдП рдЧрдП рдереЗред

рдореЗрд░рд╛ рдХрд╛рд░реНрдп рд╢реЗрдбреНрдпреВрд▓ рдЖрдорддреМрд░ рдкрд░ рдореБрдЭреЗ рдЪрд░реНрдЪрд╛рдУрдВ рдХрд╛ рд╕рдорд░реНрдерди рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХрд┐рд╕реА рднреА рдорд╛рдорд▓реЗ рдореЗрдВ рдЖрдкрдХреА рдЯрд┐рдкреНрдкрдгреА рд╕рд╛рдЗрдЯ рдкрд░ рдЖрдЧрдВрддреБрдХреЛрдВ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧреА рдФрд░ рдЗрд╕рд▓рд┐рдП рд╣рдореЗрд╢рд╛ рд╕реНрд╡рд╛рдЧрдд рд╣реИред

рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдлрд╛рдЗрд▓реЗрдВ рдпрд╣рд╛рдВ рд╣реИрдВ ред

Source: https://habr.com/ru/post/hi449776/


All Articles