ΠΊΠ°ΠΊ ΡΠ΄Π΅Π»Π°ΡΡ Π½ΠΈΠΆΠ½Π΅Π΅ ΠΌΠ΅Π½Ρ android studio
Android: Π²ΡΠ΄Π²ΠΈΠ³Π°ΡΡΠΈΠΉΡΡ ΡΠΊΡΠ°Π½ ΡΠ½ΠΈΠ·Ρ
ΠΠ°Π½Π½Π°Ρ ΡΡΠ°ΡΡΡ ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠ΅ΡΠ΅Π²ΠΎΠ΄ΠΎΠΌ ΡΡΠ°ΡΡΠΈ Emrullah Luleci, Π° ΡΠ°ΠΊΠΆΠ΅ Π΅Ρ ΠΏΡΠΎΠ΄ΠΎΠ»ΠΆΠ΅Π½ΠΈΡ.
ΠΠΈΠΆΠ½ΠΈΠΉ ΡΠΊΡΠ°Π½ (ΠΠ΄Π΅ΡΡ ΠΈ Π΄Π°Π»Π΅Π΅ ΠΏΠΎΠ΄ Β«Π½ΠΈΠΆΠ½ΠΈΠΌ ΡΠΊΡΠ°Π½ΠΎΠΌ/ΡΠ»ΠΎΠ΅ΠΌΒ» Π±ΡΠ΄Π΅Ρ ΠΏΠΎΠ΄ΡΠ°Π·ΡΠΌΠ΅Π²Π°ΡΡΡΡ ΡΠ»Π΅ΠΌΠ΅Π½Ρ bottom sheet β ΠΏΡΠΈΠΌ. ΠΏΠ΅Ρ.) β ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ, Π²ΡΠ΅Π·ΠΆΠ°ΡΡΠΈΠΉ ΡΠ½ΠΈΠ·Ρ ΡΠΊΡΠ°Π½Π°, ΠΊΠΎΡΠΎΡΡΠΉ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Π΄ΠΎΠΏΠΎΠ»Π½ΠΈΡΠ΅Π»ΡΠ½ΠΎΠ³ΠΎ ΠΊΠΎΠ½ΡΠ΅Π½ΡΠ°. ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΎΠ± ΡΡΠΎΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ·Π½Π°ΡΡ Π½Π° ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠΉ ΡΠ°ΠΉΡΠ΅ ΠΏΠΎΡΠ²ΡΡΠ΅Π½Π½ΠΎΠΌ ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠΌΡ Π΄ΠΈΠ·Π°ΠΉΠ½Ρ.
ΠΠ°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ
ΠΠ»Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠΎΠ³ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ°, Π΄ΠΎΠ±Π°Π²ΡΡΠ΅ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠ΅ Π²Π΅ΡΡΠΈΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΊΠΈ Π² ΡΠ²ΠΎΠΉ ΠΏΡΠΎΠ΅ΠΊΡ:
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ ΠΊΠ»Π°ΡΡ Π½Π°ΡΠ»Π΅Π΄Π½ΠΈΠΊ ΠΎΡ AppCompatActivity:
Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΌΠ°ΠΊΠ΅ΡΠΎΠ²
Π‘ΠΎΠ΄Π΅ΡΠΆΠΈΠΌΠΎΠ΅ Π½ΠΈΠΆΠ½Π΅Π³ΠΎ ΡΠΊΡΠ°Π½Π°
ΠΠ»Ρ ΡΠ΄ΠΎΠ±ΡΡΠ²Π° Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌΡΡ ΠΌΠ°ΠΊΠ΅ΡΠ°ΠΌΠΈ. ΠΠ°Π·ΠΎΠ²Π΅ΠΌ ΡΠ°ΠΉΠ» Ρ Π½ΠΈΠΆΠ½ΠΈΠΌ ΡΠ»ΠΎΠ΅ΠΌ bottom_sheet.xml.
behavior_peekHeight: ΠΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ Π²ΡΡΠΎΡΡ Π²ΠΈΠ΄ΠΈΠΌΠΎΠΉ ΡΠ°ΡΡΠΈ.
behavior_hideable: ΠΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅Ρ, ΠΌΠΎΠΆΠ΅Ρ Π»ΠΈ Π½ΠΈΠΆΠ½ΠΈΠΉ ΡΠΊΡΠ°Π½ ΡΠΊΡΡΠ²Π°ΡΡΡΡ ΡΠ²Π°ΠΉΠΏΠΎΠΌ Π²Π½ΠΈΠ·.
Container view
Π‘ΠΎΠ·Π΄Π°ΠΉΡΠ΅ CoordinatorLayout Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΊΠΎΡΠ½Π΅Π²ΠΎΠ³ΠΎ Π²ΡΡ. ΠΠΎΠ±Π°Π²ΡΡΠ΅ Π² Π½Π΅Π³ΠΎ ΠΏΡΡΠΌΡΠΌ Π½Π°ΡΠ»Π΅Π΄Π½ΠΈΠΊΠΎΠΌ bottom_sheet.xml. ΠΠ»Π΅ΠΌΠ΅Π½ΡΡ app_bar ΠΈ activity_bottom_sheet_content Π½Π΅ ΠΈΠΌΠ΅ΡΡ ΠΏΡΡΠΌΠΎΠ³ΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΡ ΠΊ Π½ΠΈΠΆΠ½Π΅ΠΌΡ ΡΠΊΡΠ°Π½Ρ, ΠΏΠΎΡΡΠΎΠΌΡ ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡΡ ΠΈΠ»ΠΈ ΡΠ΄Π°Π»ΠΈΡΡ.
ΠΠ° Π΄Π°Π½Π½ΠΎΠΌ ΡΡΠ°ΠΏΠ΅ Π½ΠΈΠΆΠ½ΠΈΠΉ ΡΠΊΡΠ°Π½ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ°Π±ΠΎΡΠ°ΡΡ ΠΏΡΠΈΠΌΠ΅ΡΠ½ΠΎ ΡΠ°ΠΊ:
ΠΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΎΠ΅ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅
ΠΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ΠΌ ΠΈ ΡΠ²ΠΎΠΉΡΡΠ²Π°ΠΌΠΈ Π½ΠΈΠΆΠ½Π΅Π³ΠΎ ΡΠΊΡΠ°Π½Π° ΠΌΠΎΠΆΠ½ΠΎ ΡΠ°ΠΊΠΆΠ΅ ΡΠΏΡΠ°Π²Π»ΡΡΡ Π΄ΠΈΠ½Π°ΠΌΠΈΡΠ΅ΡΠΊΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Java.
ΠΡΠΈΠΊΡΠ΅ΠΏΠ»Π΅Π½ΠΈΠ΅ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΊ Π½ΠΈΠΆΠ½Π΅ΠΌΡ ΡΠΊΡΠ°Π½Ρ
Π’Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΠΊΡΠ΅ΠΏΠΈΡΡ Π²ΡΡ ΠΊ Π½ΠΈΠΆΠ½Π΅ΠΌΡ ΡΠΊΡΠ°Π½Ρ, ΡΡΠΎΠ±Ρ ΠΏΡΠΈΠΊΡΠ΅ΠΏΠ»Π΅Π½Π½ΡΠΉ ΡΠ»Π΅ΠΌΠ΅Π½Ρ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°Π»ΡΡ ΠΎΠ΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Ρ Π½ΠΈΠΆΠ½ΠΈΠΌ ΡΠ»ΠΎΠ΅ΠΌ.
ΠΠΎΠ±Π°Π²ΠΈΠΌ Floating Action Button Π² ΠΌΠ°ΠΊΠ΅Ρ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ Π²ΡΡΠ΅. ΠΠΎΠ²ΡΠΉ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠ²Π»ΡΡΡΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΡΠΌ Π½Π°ΡΠ»Π΅Π΄Π½ΠΈΠΊΠΎΠΌ CoordinatorLayout ΡΠ°ΠΊΠΆΠ΅ ΠΊΠ°ΠΊ ΠΈ bottom_sheet. ΠΠ»Ρ ΠΏΡΠΈΠΊΡΠ΅ΠΏΠ»Π΅Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠ° ΠΊ Π½ΠΈΠΆΠ½Π΅ΠΌΡ ΡΠΊΡΠ°Π½Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ app:layout_anchor Ρ id Π²ΡΡ Π½ΠΈΠΆΠ½Π΅Π³ΠΎ ΡΠΊΡΠ°Π½Π°, Π° ΡΠ°ΠΊΠΆΠ΅ app:layout_anchorGravity ΡΠΎ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ΠΌ top|end.
Π’Π΅ΠΏΠ΅ΡΡ ΠΏΠ»Π°Π²Π°ΡΡΠ°Ρ ΠΊΠ½ΠΎΠΏΠΊΠ° Π·Π°ΠΊΡΠ΅ΠΏΠ»Π΅Π½Π° Π² Π²Π΅ΡΡ Π½Π΅ΠΌ ΡΠ³Π»Ρ Π½Π°ΡΠ΅Π³ΠΎ Π½ΠΈΠΆΠ½Π΅Π³ΠΎ ΡΠΊΡΠ°Π½Π° ΠΈ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°Π΅ΡΡΡ Π²ΠΌΠ΅ΡΡΠ΅ Ρ Π½ΠΈΠΌ.
Π‘ΠΊΡΡΡΠΈΠ΅ ΠΏΠ»Π°Π²Π°ΡΡΠ΅ΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΏΡΠΈ ΡΠΊΡΠΎΠ»Π΅
ΠΠ»Ρ ΡΠΊΡΡΡΠΈΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΠΏΡΠΈ ΡΠΊΡΠΎΠ»Π΅ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΠ»ΡΡΠ°ΡΠ΅Π»Ρ ΠΊ Π½ΠΈΠΆΠ½Π΅ΠΌΡ ΡΠΊΡΠ°Π½Ρ ΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ/ΡΠΊΡΡΠ²Π°ΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ. ΠΠ»Ρ Π½Π°ΡΠ°Π»Π° Π½Π°ΠΉΠ΄Π΅ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π²ΡΡ:
ΠΠ»Ρ ΡΠΊΡΡΡΠΈΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ Π² ΠΌΠΎΠΌΠ΅Π½Ρ Π½Π°ΡΠ°Π»Π° ΡΠΊΡΠΎΠ»Π° ΠΈ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΏΠΎΡΠ»Π΅ ΠΏΠΎΠ»Π½ΠΎΠ³ΠΎ ΡΠ²ΠΎΡΠ°ΡΠΈΠ²Π°Π½ΠΈΡ Π½ΠΈΠΆΠ½Π΅Π³ΠΎ ΡΠΊΡΠ°Π½Π°, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠΉΡΠ΅ ΡΠ»Π΅Π΄ΡΡΡΠ΅Π΅:
Π Π΅Π·ΡΠ»ΡΡΠ°Ρ ΠΎΠ±ΠΎΠΈΡ Π²Π°ΡΠΈΠ°Π½ΡΠΎΠ² ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²ΠΈΠ΄Π΅ΡΡ Π½ΠΈΠΆΠ΅:
Π£ΡΠΎΠΊ 17. Android Navigation. ΠΠ½Π°ΠΊΠΎΠΌΡΡΠ²ΠΎ Ρ BottomNavigationView. ΠΠ°ΠΊ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΡ Π² ΠΏΠ°Π½Π΅Π»Ρ Bottom Navigation.
ΠΠ° ΠΏΡΠΎΡΠ»ΠΎΠΌ ΡΡΠΎΠΊΠ΅ ΠΌΡ ΡΠ°Π±ΠΎΡΠ°Π»ΠΈ Ρ Π°Π½ΠΈΠΌΠ°ΡΠΈΠ΅ΠΉ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΎΠ² ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΊΡΠ°Π½Π°ΠΌΠΈ. ΠΠ° ΡΡΠΎΠΌ ΡΡΠΎΠΊΠ΅ ΠΏΠΎΠ·Π½Π°ΠΊΠΎΠΌΠΈΠΌΡΡ Ρ Π½ΠΈΠΆΠ½Π΅ΠΉ ΠΏΠ°Π½Π΅Π»ΡΡ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈ BottomNavigationView, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΡΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠΊΡΠ°Π½Π°ΠΌΠΈ β ΠΏΡΠ½ΠΊΡΠ°ΠΌΠΈ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ Π½Π°Π³Π»ΡΠ΄Π½ΠΎ ΠΈΠ½ΡΠΎΡΠΌΠΈΡΡΠ΅Ρ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΎ ΡΠΎΠΌ, Π½Π° ΠΊΠ°ΠΊΠΎΠΌ ΡΠΊΡΠ°Π½Π΅ ΠΎΠ½ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡΡ. Π Π°Π·Π±Π΅ΡΠ΅ΠΌΡΡ, ΠΊΠ°ΠΊ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Bottom Navigation Π² Π°Π½Π΄ΡΠΎΠΈΠ΄ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΠΊΠ°ΠΊ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π² BottomNavigationView Π½ΠΎΠ²ΡΠ΅ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΡ.
Π‘ΠΎΠ·Π΄Π°Π΅ΠΌ ΠΏΡΠΎΠ΅ΠΊΡ
Π‘ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ, ΡΠΎΠ·Π΄Π°ΡΡ ΠΏΡΠΎΡΡΠΎΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ ΠΏΠ°Π½Π΅Π»ΡΡ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈ ΠΌΠΎΠΆΠ½ΠΎ, Π½Π΅ Π½Π°ΠΏΠΈΡΠ°Π² Π½ΠΈ ΠΎΠ΄Π½ΠΎΠΉ ΡΡΡΠΎΡΠΊΠΈ ΠΊΠΎΠ΄Π°. ΠΠΎΡΡΠ°ΡΠΎΡΠ½ΠΎ Π²ΠΎΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π³ΠΎΡΠΎΠ²ΡΠΌ ΠΌΠ°ΠΊΠ΅ΡΠΎΠΌ Bottom Navigation Activity Π½Π° ΡΡΠ°ΠΏΠ΅ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π² Android Studio. ΠΡΠΈ ΡΡΠΎΠΌ ΡΠΎΠ·Π΄Π°Π΅ΡΡΡ ΠΏΡΠΎΠ΅ΠΊΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Ρ Π½ΠΈΠΆΠ½Π΅ΠΉ ΠΏΠ°Π½Π΅Π»ΡΡ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈ BottomNavigationView Π½Π° Π³Π»Π°Π²Π½ΠΎΠΌ ΡΠΊΡΠ°Π½Π΅, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ ΡΡΠΈ ΠΏΡΠ½ΠΊΡΠ°. ΠΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΈΠ· Π½ΠΈΡ ΠΌΠ΅Π½ΡΡΡΡΡ ΡΠΊΡΠ°Π½Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΡΠΎ Π²ΡΠ΅ Ρ ΠΎΡΠΎΡΠΎ, ΡΠΊΠ°ΠΆΠ΅ΡΠ΅ Π²Ρ, Π½ΠΎ Π΅ΡΠ»ΠΈ Π½ΡΠΆΠ½ΠΎ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΈΠ»ΠΈ ΡΠ±ΡΠ°ΡΡ ΡΠΊΡΠ°Π½Ρ ΠΈ ΠΏΡΠ½ΠΊΡΡ Π΄Π»Ρ Π½ΠΈΡ ? ΠΠ»ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π½ΠΈΠΆΠ½ΡΡ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΡ Π² ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅?
ΠΠΊ, Π΄Π°Π²Π°ΠΉΡΠ΅ ΠΈΠ·ΡΡΠΈΠΌ ΡΡΡΡΠΊΡΡΡΡ ΠΏΡΠΎΠ΅ΠΊΡΠ°, ΡΠΎΠ·Π΄Π°Π½Π½ΠΎΠ³ΠΎ ΠΏΠΎ ΡΠ°Π±Π»ΠΎΠ½Ρ, ΠΈ ΠΏΠΎ Ρ ΠΎΠ΄Ρ ΠΏΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΡΡΠ΄Π° ΠΏΠ°ΡΡ Π½ΠΎΠ²ΡΡ ΡΠΊΡΠ°Π½ΠΎΠ² ΠΈ ΠΏΡΠ½ΠΊΡΠΎΠ² Π΄Π»Ρ Π½ΠΈΡ , Π° ΡΠ°ΠΊΠΆΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ ΡΠ°Π³ΠΈ Π΄Π»Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ Π½ΠΈΠΆΠ½Π΅ΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈ Π² ΡΠΆΠ΅ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.
ΠΠ΅ΠΎΡ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ
ΠΡΠ»ΠΈ ΠΎΡΠΊΡΡΡΡ ΡΠ°ΠΉΠ» ΡΠ±ΠΎΡΠΊΠΈ build.gradle, Π² ΡΠ΅ΠΊΡΠΈΠΈ dependencies ΠΌΠΎΠΆΠ½ΠΎ ΡΠ²ΠΈΠ΄Π΅ΡΡ ΠΏΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½Π½ΡΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΈΠ· ΠΏΠ°ΠΊΠ΅ΡΠ° androidx.navigation (Ρ ktx Π΄Π»Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠ² Π½Π° kotlin) ΠΊΠΎΡΠΎΡΡΠ΅ Π½Π°ΠΌ ΡΠΆΠ΅ Π·Π½Π°ΠΊΠΎΠΌΡ ΠΏΠΎ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΌ ΡΡΠΎΠΊΠ°ΠΌ Π½Π° ΡΠ΅ΠΌΡ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ. ΠΡΠ»ΠΈ Π²Ρ Π΄ΠΎΠ±Π°Π²Π»ΡΠ΅ΡΠ΅ Π½ΠΈΠΆΠ½ΡΡ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΡ Π² ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠ΅Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΡΠΎ Π½Π°ΡΠΈΠ½Π°ΡΡ Π½ΡΠΆΠ½ΠΎ Ρ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΡΡΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ Π² Π²Π°Ρ ΠΏΡΠΎΠ΅ΠΊΡ.
ΠΡΠ°Ρ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈ
Π ΠΏΠ°ΠΏΠΊΠ΅ res Π΅ΡΡΡ ΠΏΠ°ΠΏΠΊΠ° navigation, Π² ΠΊΠΎΡΠΎΡΠΎΠΉ ΡΠ°Π·ΠΌΠ΅ΡΠ΅Π½ Π²ΡΠ΅ ΡΠΎΡ ΠΆΠ΅ Π³ΡΠ°Ρ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈ, Π΅Π³ΠΎ Π²Ρ ΠΏΠΎΠΌΠ½ΠΈΡΠ΅ ΠΏΠΎ ΠΏΡΠ΅Π΄ΡΠ΄ΡΡΠΈΠΌ ΡΡΠΎΠΊΠ°ΠΌ. ΠΠ΅Π· Π½Π΅Π³ΠΎ, ΠΊΠ°ΠΊ Π²Ρ ΠΏΠΎΠ½ΠΈΠΌΠ°Π΅ΡΠ΅, Π½Π΅ ΠΎΠ±Ρ ΠΎΠ΄ΠΈΡΡΡ Π·Π΄Π΅ΡΡ ΠΈ Π½ΠΈΠΆΠ½ΡΡ ΠΏΠ°Π½Π΅Π»Ρ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈ.
ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΊΡΠ°Π½ΠΎΠ²
ΠΠ°ΠΆΠΌΠΈΡΠ΅ ΠΊΠ½ΠΎΠΏΠΊΡ New Destination Π²Π²Π΅ΡΡ Ρ ΠΈ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ Create New Destination. ΠΠ° ΡΠΊΡΠ°Π½Π΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠΎΠ² Π²ΡΠ±Π΅ΡΠΈΡΠ΅ ΡΠ°Π±Π»ΠΎΠ½ Fragment (with ViewModel). ΠΠΎΠ±Π°Π²ΡΡΠ΅ ΠΎΠ΄ΠΈΠ½ Π·Π° Π΄ΡΡΠ³ΠΈΠΌ Π΄Π²Π° ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ° β ΡΠ΅ΡΠ²Π΅ΡΡΡΠΉ ΠΈ ΠΏΡΡΡΠΉ ΡΠΊΡΠ°Π½. Π― ΠΈΡ ΡΠ°ΠΊ ΠΈ Π½Π°Π·ΠΎΠ²Ρ: FourthFragment ΠΈ FifthFragment.
ΠΡ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π²ΡΠ±ΡΠ°ΡΡ ΠΏΡΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠΈ ΠΏΡΠΎΡΡΠΎ Fragment blank. ΠΠΎ ΡΠ²ΡΠ·ΠΊΠ° Fragment + ViewModel ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΠΏΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²Π° ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ ΡΠΎΡΡΠΎΡΠ½ΠΈΡ ΡΠΊΡΠ°Π½Π° ΠΏΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΈ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΠΈ β Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΏΡΠΈ ΠΏΠΎΠ²ΠΎΡΠΎΡΠ΅ ΡΡΡΡΠΎΠΉΡΡΠ²Π°. ΠΠΎΠ΄ΡΠΎΠ±Π½Π΅Π΅ ΠΎΠ± ΡΡΠΎΠΌ ΠΌΡ Π³ΠΎΠ²ΠΎΡΠΈΠ»ΠΈ Π² Π£ΡΠΎΠΊΠ΅ 6.
Π Π³ΡΠ°Ρ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠ»ΠΎΡΡ Π΄Π²Π° ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ°. ΠΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΡΠΉΡΠ΅ ΠΈΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΠΈΠΌΠ΅Π½Π°ΠΌΠΈ Π΄ΡΡΠ³ΠΈΡ ΠΏΡΠ½ΠΊΡΠΎΠ² Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ: navigation_fourth ΠΈ navigation_fifth. ΠΠ΅ΡΠ΅ΠΈΠΌΠ΅Π½ΠΎΠ²Π°Π½ΠΈΠ΅ Π²ΡΠ΅Π³Π΄Π° Π»ΡΡΡΠ΅ Π΄Π΅Π»Π°ΡΡ ΡΠ΅ΡΠ΅Π· ΡΠ΅ΡΠ°ΠΊΡΠΎΡΠΈΠ½Π³, Π½Π°ΠΆΠ°ΡΠΈΠ΅ΠΌ ΠΊΠΎΠΌΠ±ΠΈΠ½Π°ΡΠΈΠΈ Shift + F6 β ΡΡΠΎ Π³Π°ΡΠ°Π½ΡΠΈΡΡΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π²ΡΠ΅Ρ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΡΡ ΡΠ²ΡΠ·Π΅ΠΉ.
ΠΠΎΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ ΠΎΡΡΠ°Π²ΠΈΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ ΠΊΠ°ΠΊ Π±ΡΠ»ΠΎ, Π½ΠΎ Π±ΠΎΠ»Π΅Π΅ ΠΏΡΠ°Π²ΠΈΠ»ΡΠ½ΠΎ Ρ ΡΠΎΡΠΊΠΈ Π·ΡΠ΅Π½ΠΈΡ Code Convention, ΡΡΠΎΠ±Ρ Π½Π°Π·Π²Π°Π½ΠΈΡ ΠΎΠ΄Π½ΠΎΡΠΈΠΏΠ½ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π±ΡΠ»ΠΈ Π»ΠΎΠ³ΠΈΡΠ΅ΡΠΊΠΈ ΠΏΠΎΡ ΠΎΠΆΠΈΠΌΠΈ. ΠΠ° ΠΈ Π½Π°Ρ ΠΎΠ΄ΠΈΡΡ ΠΈΡ Π±ΡΠ΄Π΅Ρ Π»Π΅Π³ΡΠ΅ ΠΏΠΎΡΠΎΠΌ.
Π’Π°ΠΊΠΆΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° android:label β ΠΎΠ½ΠΎ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΡΡΡ Π΄Π»Ρ Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ° ΡΠΊΡΠ°Π½Π°. ΠΠΏΠΈΡΠΈΡΠ΅ ΡΡΠ΄Π° ΡΠ΅ΠΊΡΡ, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ Π²ΠΈΠ΄Π΅ΡΡ Π² Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΊΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠ΅Π³ΠΎ ΡΠΊΡΠ°Π½Π°, ΠΆΠ΅Π»Π°ΡΠ΅Π»ΡΠ½ΠΎ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡ Π΅Π³ΠΎ Π·Π°ΡΠ΅ΠΌ Π² ΡΡΡΠΎΠΊΠΎΠ²ΡΡ ΡΠ΅ΡΡΡΡΠ°Ρ . ΠΠ»Ρ ΡΠΎΡ ΡΠ°Π½Π΅Π½ΠΈΡ Π½Π°ΠΆΠΌΠΈΡΠ΅ ΠΆΠ΅Π»ΡΡΡ Π»Π°ΠΌΠΏΠΎΡΠΊΡ ΠΈ Π²ΡΠ±Π΅ΡΠΈΡΠ΅ ΠΏΡΠ½ΠΊΡ Β«Extract string resourseΒ», Π° Π·Π°ΡΠ΅ΠΌ ΠΏΡΠΈΠ΄ΡΠΌΠ°ΠΉΡΠ΅ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΡΡΡΠΎΠΊΠΈ, ΠΊΠΎΡΠΎΡΠ°Ρ ΡΠΎΡ ΡΠ°Π½ΠΈΡΡΡ Π² ΡΠ°ΠΉΠ»Π΅ res/values/strings.xml.
ΠΠ° ΡΡΠΎΠΌ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΡΠΊΡΠ°Π½ΠΎΠ² Π·Π°ΠΊΠΎΠ½ΡΠ΅Π½ΠΎ. ΠΠΎ, Π΅ΡΠ»ΠΈ Π·Π°ΠΏΡΡΡΠΈΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΡΠ΅ΠΉΡΠ°Ρ, ΠΎΠ½ΠΈ Π½Π΅ Π±ΡΠ΄ΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ, ΠΈ Π½ΠΈΠΆΠ½ΡΡ ΠΏΠ°Π½Π΅Π»Ρ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈ Π½ΠΈΠΊΠ°ΠΊ Π½Π΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡΡ. Π§ΡΠΎ ΠΆ, ΠΈΠ΄Π΅ΠΌ Π΄Π°Π»ΡΡΠ΅.
Π₯ΠΎΡΡ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈ
ΠΡΠ»ΠΈ ΠΌΡ ΠΎΡΠΊΡΠΎΠ΅ΠΌ ΠΏΠ°ΠΏΠΊΡ layout, ΡΠΎ ΡΠ²ΠΈΠ΄ΠΈΠΌ ΠΌΠ°ΠΊΠ΅ΡΡ Π²ΡΠ΅Ρ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠΎΠ² β ΠΏΡΠ½ΠΊΡΠΎΠ² Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΈ ΠΌΠ°ΠΊΠ΅Ρ Π³Π»Π°Π²Π½ΠΎΠ³ΠΎ Π°ΠΊΡΠΈΠ²ΠΈΡΠΈ.
ΠΠ°ΠΊΠ΅Ρ activity_main.xml ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ fragment β ΡΡΠΎ Ρ ΠΎΡΡ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈ, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΡ β ΠΏΡΠ½ΠΊΡΡ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ. ΠΠ½ ΡΠ²ΡΠ·Π°Π½ Ρ Π³ΡΠ°ΡΠΎΠΌ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈ ΡΠ΅ΡΠ΅Π· ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ app:navGraph.
BottomNavigationView
Π’Π°ΠΊΠΆΠ΅ Π·Π΄Π΅ΡΡ ΠΏΡΠΈΡΡΡΡΡΠ²ΡΠ΅Ρ ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ BottomNavigationView. ΠΡΠΎ ΠΈ Π΅ΡΡΡ Π½ΠΈΠΆΠ½ΡΡ ΠΏΠ°Π½Π΅Π»Ρ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈ. ΠΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ BottomNavigationView ΡΠ²Π»ΡΠ΅ΡΡΡ ΡΠ°ΡΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² ΠΌΠ°ΡΠ΅ΡΠΈΠ°Π»ΡΠ½ΠΎΠ³ΠΎ Π΄ΠΈΠ·Π°ΠΉΠ½Π°. ΠΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° Π΄ΠΎΠ»ΠΆΠ½Π° Π±ΡΡΡ ΠΈΠΌΠΏΠΎΡΡΠΈΡΠΎΠ²Π°Π½Π° Π² ΡΠ°ΠΉΠ»Π΅ ΡΠ±ΠΎΡΠΊΠΈ ΠΌΠΎΠ΄ΡΠ»Ρ:
ΠΠ±ΡΡΠ½ΠΎ ΠΎΠ½Π° ΡΠΆΠ΅ Π΅ΡΡΡ Π² ΠΏΡΠΎΠ΅ΠΊΡΠ΅ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ.
Π Π°ΡΡΠΌΠΎΡΡΠΈΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ BottomNavigationView Π±ΠΎΠ»Π΅ ΠΏΠΎΠ΄ΡΠΎΠ±Π½ΠΎ. ΠΠ½ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ nav_view, ΠΈ ΠΈΠΌΠ΅Π΅Ρ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ ΡΠΈΡΠΈΠ½Ρ β 0dp. ΠΡΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅ΠΌΠΎΠ΅ Π·Π½Π°ΡΠ΅Π½ΠΈΠ΅ Π΄Π»Ρ Π²ΡΠ΅Ρ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ², ΡΠΈΡΠΈΠ½Π° ΠΊΠΎΡΠΎΡΡΡ ΡΠ΅Π³ΡΠ»ΠΈΡΡΠ΅ΡΡΡ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡΠΌΠΈ, Π·Π°Π΄Π°Π½Π½ΡΠΌΠΈ ΠΊΠΎΡΠ½Π΅Π²ΡΠΌ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠΌ ΡΠ°Π·ΠΌΠ΅ΡΠΊΠΈ ConstraintLayout. ΠΡ Π²ΠΈΠ΄ΠΈΠΌ ΡΡΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ Π½ΠΈΠΆΠ΅, ΠΎΠ½ΠΈ ΠΏΡΠΈΠ²ΡΠ·ΡΠ²Π°ΡΡ ΠΏΠ°Π½Π΅Π»Ρ ΠΊ Π½ΠΈΠΆΠ½Π΅ΠΉ ΡΠ°ΡΡΠΈ ΡΠΎΠ΄ΠΈΡΠ΅Π»Ρ, ΠΊΠΎΡΠΎΡΡΠΉ, Π² ΡΠ²ΠΎΡ ΠΎΡΠ΅ΡΠ΅Π΄Ρ, Π·Π°Π½ΠΈΠΌΠ°Π΅Ρ Π²Π΅ΡΡ ΡΠΊΡΠ°Π½.
ΠΡΡΠΎΡΠ° BottomNavigationView Π·Π°Π΄Π°Π½Π° ΠΏΠΎ ΠΊΠΎΠ½ΡΠ΅Π½ΡΡ, Π½ΠΎ ΠΌΠΎΠΆΠ½ΠΎ ΡΡΡΠ°Π½ΠΎΠ²ΠΈΡΡ ΡΠΈΠΊΡΠΈΡΠΎΠ²Π°Π½Π½ΡΡ Π½ΡΠΆΠ½ΠΎΠ³ΠΎ Π²Π°ΠΌ ΡΠ°Π·ΠΌΠ΅ΡΠ°.
ΠΠ°Π»Π΅Π΅ ΠΈΠ΄ΡΡ Π΄Π²Π° ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ° layout_marginStart ΠΈ layout_marginEnd. ΠΠ½ΠΈ ΡΠ΅Π³Π»Π°ΠΌΠ΅Π½ΡΠΈΡΡΡΡ ΠΎΡΡΡΡΠΏ ΡΠ»Π΅Π²Π° ΠΈ ΡΠΏΡΠ°Π²Π°, Π½ΠΎ ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π·Π΄Π΅ΡΡ ΡΠ°Π²Π½Ρ Π½ΡΠ»Ρ, ΠΎΠ½ΠΈ Π½ΠΈ Π½Π° ΡΡΠΎ Π½Π΅ Π²Π»ΠΈΡΡΡ, ΠΈ ΠΈΡ ΠΌΠΎΠΆΠ½ΠΎ ΡΠ΄Π°Π»ΠΈΡΡ.
ΠΠ°ΡΠ°ΠΌΠ΅ΡΡ android:background ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΡΡΠ»ΠΊΡ Π½Π° Π°ΡΡΠΈΠ±ΡΡ windowBackground ΠΈ Π΄Π΅Π»Π°Π΅Ρ ΡΠΎΠ½ ΠΏΠ°Π½Π΅Π»ΠΈ ΡΠ°ΠΊΠΎΠΉ ΠΆΠ΅, ΠΊΠ°ΠΊ ΡΠΎΠ½ ΡΠΊΡΠ°Π½Π°. ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΏΠΎΠ»ΡΡΠΈΡΡ ΡΠ²Π΅Ρ ΠΏΠ°Π½Π΅Π»ΠΈ, ΡΠ°ΠΊΠΎΠΉ ΠΊΠ°ΠΊ Π½Π° Π³Π°ΠΉΠ΄Π»Π°ΠΉΠ½Π°Ρ ΡΠ°ΠΉΡΠ° material.io, ΡΠΎ Π·Π°ΠΌΠ΅Π½ΠΈΡΠ΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ android:background=Β»?android:attr/windowBackgroundΒ» ΡΠ°ΠΊΠΈΠΌ:
ΠΡΡΠ°ΡΠΈ, Π½Π° ΡΠ°ΠΉΡΠ΅ material.io ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎΠ»Π΅Π·Π½ΡΡ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄Π°ΡΠΈΠΉ ΠΊΠ°ΠΊ ΠΏΠΎ Π΄ΠΈΠ·Π°ΠΉΠ½Ρ, ΡΠ°ΠΊ ΠΈ ΠΏΠΎ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΠΎΠ² Π²ΠΈΠ·ΡΠ°Π»ΡΠ½ΠΎΠ³ΠΎ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ°. ΠΠ° ΡΡΡΠ°Π½ΠΈΡΠ΅ Bottom Navigation, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠΊΠ°Π·Π°Π½ΠΎ, ΡΡΠΎ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΠΎΠ²Π°Π½Π½ΠΎΠ΅ ΡΠΈΡΠ»ΠΎ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² ΠΏΠ°Π½Π΅Π»ΠΈ Π½ΠΈΠΆΠ½Π΅ΠΉ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈ Π΄ΠΎΠ»ΠΆΠ½ΠΎ Π±ΡΡΡ ΠΎΡ ΡΡΠ΅Ρ Π΄ΠΎ ΠΏΡΡΠΈ. ΠΠΎΠ΄ΠΏΠΈΡΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΠΌΠ°ΠΊΡΠΈΠΌΠ°Π»ΡΠ½ΠΎ ΠΊΠΎΡΠΎΡΠΊΠΈΠΌΠΈ ΠΈ ΡΠΎΡΡΠΎΡΡΡ, ΠΏΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ, ΠΈΠ· ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΠ»ΠΎΠ²Π°.
ΠΠ° Π²ΠΊΠ»Π°Π΄Π΅ implementation Π΄Π°Π΅ΡΡΡ ΠΏΡΠΈΠΌΠ΅Ρ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π½ΠΈΠΆΠ½Π΅ΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ Π±Π΅Π· Π³ΡΠ°ΡΠ° Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈ, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΏΡΠΈΠΌΠ΅ΡΡ ΠΊΠ°ΡΡΠΎΠΌΠΈΠ·Π°ΡΠΈΠΈ ΠΈ ΠΎΡΠΎΡΠΌΠ»Π΅Π½ΠΈΡ ΡΠΎΠ½Π° ΠΈ ΡΠ²Π΅ΡΠ° ΠΏΡΠ½ΠΊΡΠΎΠ² Π½ΠΈΠΆΠ½Π΅ΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ, Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΡ ΠΏΡΠ½ΠΊΡΠ°ΠΌ Π±Π΅ΠΉΠ΄ΠΆΠ΅ΠΉ ΠΈ Ρ.Π΄.
ΠΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ ΠΏΡΠ½ΠΊΡΠΎΠ² ΠΌΠ΅Π½Ρ
ΠΠΎ Π²Π΅ΡΠ½Π΅ΠΌΡΡ ΠΊ Π½Π°ΡΠ΅ΠΌΡ ΠΏΡΠΎΠ΅ΠΊΡΡ ΠΈ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½ΡΡ BottomNavigationView Π² ΠΌΠ°ΠΊΠ΅ΡΠ΅ activity_main.xml.
ΠΠ°Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΠ΅Ρ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΠΉ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ:
ΠΠ½ ΡΡΡΠ»Π°Π΅ΡΡΡ Π½Π° ΡΠ°ΠΉΠ» bottom_nav_menu.xml Π² ΠΏΠ°ΠΏΠΊΠ΅ res/menu. ΠΡΠΎΡ ΡΠ°ΠΉΠ» ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΠΎΠΏΠΈΡΠ°Π½ΠΈΠ΅ ΠΏΡΠ½ΠΊΡΠΎΠ² ΠΌΠ΅Π½Ρ Π½ΠΈΠΆΠ½Π΅ΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈ. Π‘Π»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»ΡΠ½ΠΎ, Π΄ΠΎΠ±Π°Π²Π»ΡΡΡ Π½ΠΎΠ²ΡΠ΅ ΠΏΡΠ½ΠΊΡΡ ΡΠ»Π΅Π΄ΡΠ΅Ρ Π·Π΄Π΅ΡΡ.
ΠΠΎΠ±Π°Π²ΠΈΠΌ ΠΏΠ°ΡΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π΄Π»Ρ ΡΠ΅ΡΠ²Π΅ΡΡΠΎΠ³ΠΎ ΠΈ ΠΏΡΡΠΎΠ³ΠΎ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠΎΠ². ΠΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ Π΄ΠΎΠ»ΠΆΠ½Ρ ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ°ΠΌΠΈ ΠΏΡΠ½ΠΊΡΠΎΠ² Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π² Π³ΡΠ°ΡΠ΅ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈ. Π’Π°ΠΊΠΆΠ΅ ΡΠΊΠ°ΠΆΠΈΡΠ΅ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΡΡΡΠΎΠΊΠΎΠ²ΡΠ΅ ΡΠ΅ΡΡΡΡΡ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ Π½Π°Π·Π²Π°Π½ΠΈΡ ΠΏΡΠ½ΠΊΡΠΎΠ² Π² android:title.
ΠΠΎΠ±Π°Π»Π΅Π½ΠΈΠ΅ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ² Π² ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈ
ΠΡΡΠ°Π»ΠΎΡΡ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ ΠΏΡΠ½ΠΊΡΠΎΠ² Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈ Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠ° Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈ Π² ΠΊΠ»Π°ΡΡΠ΅ MainActivity.
ΠΠ΅ΡΠ΅ΠΌΠ΅Π½Π½Π°Ρ ΠΊΠ»Π°ΡΡΠ° ΠppBarConfiguration ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π½Π°Π±ΠΎΡ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ² ΠΏΡΠ½ΠΊΡΠΎΠ² Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈ ΠΈ ΠΏΠ΅ΡΠ΅Π΄Π°Π΅ΡΡΡ Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΠΎΠΌ β Ρ ΠΎΡΡΠΎΠΌ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈ β Π² ΡΡΠ½ΠΊΡΠΈΡ setupActionBarWithNavController. ΠΡΠΎ Π½ΡΠΆΠ½ΠΎ Π΄Π»Ρ ΡΠΎΠ³ΠΎ, ΡΡΠΎΠ±Ρ ΡΠΈΡΡΠ΅ΠΌΠ° ΡΡΠΈΡΠ°Π»Π° ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΠΏΡΠ½ΠΊΡΠΎΠ² Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΏΡΠ½ΠΊΡΠΎΠΌ Π²Π΅ΡΡ Π½Π΅Π³ΠΎ ΡΡΠΎΠ²Π½Ρ. Π ΠΏΡΠΎΡΠΈΠ²Π½ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΡΠ°Π³ΠΌΠ΅Π½Ρ Π±ΡΠ΄Π΅Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡ ΡΡΡΠ΅Π»ΠΊΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ° Π½Π°Π·Π°Π΄ Π² ΡΡΠ»Π±Π°ΡΠ΅ ΡΠ»Π΅Π²Π°, ΠΊΠ°ΠΊ ΡΡΠΎ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅ΡΡΡ Π½Π° Π΄ΠΎΡΠ΅ΡΠ½ΠΈΡ Π°ΠΊΡΠΈΠ²ΠΈΡΠΈ ΠΈ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ°Ρ .
ΠΠΎΠΏΡΠΎΠ±ΡΠΉΡΠ΅ ΡΠ±ΡΠ°ΡΡ ΠΊΠ°ΠΊΠΎΠΉ-Π»ΠΈΠ±ΠΎ ΠΈΠ· ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠΎΠ² ΠΏΡΠ½ΠΊΡΠΎΠ² Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ ΠΈΠ· Π½Π°Π±ΠΎΡΠ°, ΠΏΠ΅ΡΠ΅Π΄Π°Π½Π½ΠΎΠ³ΠΎ Π² ΠΏΠ΅ΡΠ΅ΠΌΠ΅Π½Π½ΡΡ appBarConfiguration, Π·Π°ΠΏΡΡΡΠΈΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈ ΠΏΠΎΡΠΌΠΎΡΡΠΈΡΠ΅ Π½Π° ΡΠΊΡΠ°Π½ ΠΏΡΠΎΠΏΡΡΠ΅Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠ½ΠΊΡΠ° Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ, ΠΈ Π²Ρ ΠΏΠΎΠΉΠΌΠ΅ΡΠ΅, ΠΎ ΡΠ΅ΠΌ ΡΠ΅ΡΡ.
Π’Π΅ΠΏΠ΅ΡΡ, ΠΊΠΎΠ³Π΄Π° Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ Π·Π°ΠΊΠΎΠ½ΡΠ΅Π½ΠΎ, Π·Π°ΠΏΡΡΡΠΈΡΠ΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅. ΠΡΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΡΠ΅ ΠΏΡΠ½ΠΊΡΡ ΠΌΠ΅Π½Ρ Π΄ΠΎΠ»ΠΆΠ½Ρ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°ΡΡΡΡ Π² Π½ΠΈΠΆΠ½Π΅ΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈ, ΠΈ ΠΏΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ Π²Π΅ΡΡΠΈ Π½Π° ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠ΅ ΡΠΊΡΠ°Π½Ρ.
Π Π΅ΡΠ°ΠΊΡΠΎΡΠΈΠ½Π³
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°Π²Π΅ΡΡΠΈ ΠΏΠΎΡΡΠ΄ΠΎΠΊ Π² ΠΏΡΠΎΠ΅ΠΊΡΠ΅. ΠΠ΅Π»ΠΎ Π² ΡΠΎΠΌ, ΡΡΠΎ ΠΈΠ·Π½Π°ΡΠ°Π»ΡΠ½ΠΎ Π² ΠΏΡΠΎΠ΅ΠΊΡΠ΅ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΡ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠΊΡΠ°Π½Π° ΡΠΎ ΡΠ²ΠΎΠΈΠΌΠΈ ViewModel ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Ρ Π² ΠΎΡΠ΄Π΅Π»ΡΠ½ΡΡ
ΠΏΠ°ΠΏΠΊΠ°Ρ
ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΡΠ½ΠΊΡΠ° ΠΌΠ΅Π½Ρ Π½ΠΈΠΆΠ½Π΅ΠΉ ΠΏΠ°Π½Π΅Π»ΠΈ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈ, ΠΈ Π²ΡΠ΅ ΡΡΠΎ Π»Π΅ΠΆΠΈΡ Π² ΠΏΠ°ΠΏΠΊΠ΅ ui. ΠΠΎΠ²ΡΠ΅ ΠΆΠ΅ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΡΠ΅ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΡ ΠΏΠΎΠΏΠ°Π»ΠΈ ΠΏΡΠΎΡΡΠΎ Π² Π³Π»Π°Π²Π½ΡΠΉ ΠΏΠ°ΠΊΠ΅Ρ. ΠΡΠΆΠ½ΠΎ ΡΠΎΠ·Π΄Π°ΡΡ Π² ΠΏΠ°ΠΏΠΊΠ΅ ui Π½ΠΎΠ²ΡΠ΅ ΠΏΠ°ΠΊΠ΅ΡΡ ΠΏΠΎ ΠΈΠΌΠ΅Π½ΠΈ Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΡΡ
ΡΠΊΡΠ°Π½ΠΎΠ². ΠΠ°ΡΠ΅ΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΠ΅ΡΠ΅Π½Π΅ΡΡΠΈ ΡΡΠ΄Π° Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π½ΡΠ΅ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΡ Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΠΈΡ
ΠΏΡΠΈΠ²ΡΠ·Π°Π½Π½ΡΠΌΠΈ ViewModel. ΠΠ΅Π»Π°Π΅ΡΡΡ ΡΡΠΎ ΠΏΡΠΎΡΡΡΠΌ ΠΏΠ΅ΡΠ΅ΡΠ°ΡΠΊΠΈΠ²Π°Π½ΠΈΠ΅ΠΌ Π² Π΄Π΅ΡΠ΅Π²Π΅ ΠΏΡΠΎΠ΅ΠΊΡΠ°, Ρ ΠΎΡΠΊΡΡΡΠΈΠ΅ΠΌ ΠΎΠΊΠ½Π° ΡΠ΅ΡΠ°ΠΊΡΠΎΡΠΈΠ½Π³Π°, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π½ΡΠΆΠ½ΠΎ ΠΏΠΎΠ΄ΡΠ²Π΅ΡΠ΄ΠΈΡΡ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ.
Π’Π΅ΠΏΠ΅ΡΡ Π²Ρ Π·Π½Π°Π΅ΡΠ΅, ΠΊΠ°ΠΊ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Bottom Navigation Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅.
ΠΠ° ΡΡΠΎΠΌ Π½Π°Ρ ΡΡΠΎΠΊ Π·Π°ΠΊΠΎΠ½ΡΠ΅Π½. ΠΠΎΠΏΡΠΎΡΡ Π·Π°Π΄Π°Π²Π°ΠΉΡΠ΅ Π² ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΡΡ . ΠΡΡ ΠΎΠ΄Π½ΡΠΉ ΠΊΠΎΠ΄ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΠΌΠΎΠΆΠ½ΠΎ ΡΠΊΠ°ΡΠ°ΡΡ ΠΏΠΎ ΡΡΡΠ»ΠΊΠ΅.
ΠΠ°Π²ΠΈΠ³Π°ΡΠΈΡ Π΄Π»Ρ Android Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ Navigation Architecture Component: ΠΏΠΎΡΠ°Π³ΠΎΠ²ΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ
ΠΠΎΠΏΡΠΎΠ±ΡΠ΅ΠΌ, ΠΏΠΎΠ»ΡΠ·ΡΡΡΡ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΡΠΌ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎΠΌ ΠΈ ΠΏΡΠΈΠΌΠ΅ΡΠ°ΠΌΠΈ ΠΊΠΎΠ΄Π°, ΠΏΠΎΡΡΡΠΎΠΈΡΡ ΡΠ°Π±ΠΎΡΠ°ΡΡΡΡ ΡΠΈΡΡΠ΅ΠΌΡ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈ Π΄Π»Ρ Π±ΡΠ΄ΡΡΠ΅Π³ΠΎ ΠΌΠ½ΠΎΠ³ΠΎΡΠΊΡΠ°Π½Π½ΠΎΠ³ΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π² ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ ΡΠΎ ΡΡΠ°Π½Π΄Π°ΡΡΠ°ΠΌΠΈ Navigation Architecture Component. Π‘ΡΠ°ΡΡΡ Π²ΠΊΠ»ΡΡΠ°Π΅Ρ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΠ°Π·Π΄Π΅Π»Ρ:
Π§Π°ΡΡΡ 1. ΠΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ°Π±ΠΎΡΡ
β 1.1. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠ°
β 1.2. ΠΠ°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ (Dependencies)
β 1.3. Π‘ΡΡΠ°Π½ΠΈΡΡ: ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠΎΠ²
β 1.4. ΠΠ΄ΡΠ΅ΡΠ°: ΡΠ°ΠΉΠ» ΡΠ΅ΡΡΡΡΠΎΠ² ΡΠΈΠΏΠ° Β«NavigationΒ»
β 1.5. Π€ΡΠ΅ΠΉΠΌ: Π²ΠΈΠ΄ΠΆΠ΅Ρ NavHostFragment
Π§Π°ΡΡΡ 2. ΠΠ»Π΅ΠΌΠ΅Π½ΡΡ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈ
β 2.1. ΠΠ°Π²ΠΈΠ³Π°ΡΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠ½ΠΎΠΏΠΎΠΊ
β 2.2. ΠΠΎΠΊΠΎΠ²ΠΎΠ΅ ΠΌΠ΅Π½Ρ (Drawer)
β 2.3. ΠΠ°Π½Π΅Π»Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ²: Toolbar Π²ΠΌΠ΅ΡΡΠΎ ActionBar
β 2.4. ΠΠΈΠΆΠ½Π΅Π΅ ΠΌΠ΅Π½Ρ (Bottom Navigation)
β 2.5. ΠΡΠΏΠ»ΡΠ²Π°ΡΡΠ΅Π΅ ΠΌΠ΅Π½Ρ (Overflow Menu)
ΠΡΠ°ΡΠΊΠΈΠ΅ Π²ΡΠ²ΠΎΠ΄Ρ ΠΈ ΡΡΡΠ»ΠΊΠ° Π½Π° github
Π§Π°ΡΡΡ 1. ΠΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ°Π±ΠΎΡΡ
1.1. Π‘ΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΠΏΡΠΎΠ΅ΠΊΡΠ°
ΠΠ°ΠΌ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΡΡΡΡ Π±Π°Π·ΠΎΠ²ΡΠ΅ Π·Π½Π°Π½ΠΈΡ ΠΠΎΡΠ»ΠΈΠ½Π°, IDE Android Studio Π²Π΅ΡΡΠΈΠΈ Π½Π΅ Π½ΠΈΠΆΠ΅ 3.3, ΡΠΌΠ°ΡΡΡΠΎΠ½ ΠΈΠ»ΠΈ ΡΠΌΡΠ»ΡΡΠΎΡ Ρ Π²Π΅ΡΡΠΈΠ΅ΠΉ API 14 ΠΈΠ»ΠΈ Π²ΡΡΠ΅.
Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ Π² Android Studio Π½ΠΎΠ²ΡΠΉ ΠΏΡΠΎΠ΅ΠΊΡ ΠΏΠΎΠ΄ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Β«Navigation2019Β».
IDE ΡΠΎΠ·Π΄Π°ΡΡ ΡΠ°ΠΉΠ» Π³Π»Π°Π²Π½ΠΎΠΉ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ Β«MainActivity.ktΒ» ΠΈ Π΅Π³ΠΎ ΠΌΠ°ΠΊΠ΅Ρ (ΡΠ°Π±Π»ΠΎΠ½) Β«activity_main.xmlΒ».
1.2. ΠΠ°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ (Dependencies)
ΠΡΠΊΡΠΎΠ΅ΠΌ ΡΠ°ΠΉΠ» Β«build.gradleΒ» ΠΌΠΎΠ΄ΡΠ»Ρ (Π½Π΅ ΠΏΡΠΎΠ΅ΠΊΡΠ°, Π° ΠΈΠΌΠ΅Π½Π½ΠΎ ΠΌΠΎΠ΄ΡΠ»Ρ) ΠΈ Π² Π±Π»ΠΎΠΊ Β«dependenciesΒ» Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ:
ΠΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π»ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Π²Π΅ΡΡΠΈΠΈ 1.0.0, Π½ΠΎ Π² Π±ΡΠ΄ΡΡΠ΅ΠΌ ΡΠΈΡΡΠ°ΡΠΈΡ ΠΌΠΎΠΆΠ΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡΡΡ. ΠΡΠΎΠ²Π΅ΡΠΈΡΡ, ΠΊΠ°ΠΊΠΈΠ΅ Π²Π΅ΡΡΠΈΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ ΡΠ²Π»ΡΡΡΡΡ Π°ΠΊΡΡΠ°Π»ΡΠ½ΡΠΌΠΈ, ΠΌΠΎΠΆΠ½ΠΎ Π·Π΄Π΅ΡΡ.
1.3. Π‘ΡΡΠ°Π½ΠΈΡΡ: ΡΠΎΠ·Π΄Π°Π½ΠΈΠ΅ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠΎΠ²
IDE ΡΠΎΠ·Π΄Π°ΡΡ kt-ΡΠ°ΠΉΠ» Ρ ΠΊΠ»Π°ΡΡΠΎΠΌ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ° ΠΈ xml-ΡΠ°ΠΉΠ» Ρ ΠΌΠ°ΠΊΠ΅ΡΠΎΠΌ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ°. Π’Π°ΠΊΠΈΠΌ ΠΆΠ΅ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ ΡΠ³Π΅Π½Π΅ΡΠΈΡΡΠ΅ΠΌ Π΅ΡΡ ΡΡΠΈ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ° (Β«Fragment2Β», Β«Fragment3Β», Β«Fragment4Β»). ΠΡ Π±ΡΠ΄Π΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΈΡ Π΄Π»Ρ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ΅ΡΡΡΡΡ ΡΠ°Π·Π½ΡΡ ΡΠΈΠΏΠΎΠ² Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈ ΠΏΠΎ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
1.4. ΠΠ΄ΡΠ΅ΡΠ°: ΡΠ°ΠΉΠ» ΡΠ΅ΡΡΡΡΠΎΠ² ΡΠΈΠΏΠ° Β«NavigationΒ»
ΠΠ»ΠΈΠΊΠ½ΡΠ² ΠΏΡΠ°Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ ΠΌΡΡΠΈ ΠΏΠΎ ΠΏΠ°ΠΏΠΊΠ΅ Β«resΒ», ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΡΠ°ΠΉΠ» ΡΠ΅ΡΡΡΡΠΎΠ² ΡΠΈΠΏΠ° Β«NavigationΒ» Ρ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ΠΌ Β«routes.xmlΒ» (Β«ΠΌΠ°ΡΡΡΡΡΡΒ»).
ΠΡΠΊΡΠΎΠ΅ΠΌ ΡΠΎΠ·Π΄Π°Π½Π½ΡΠΉ ΡΠ°ΠΉΠ» ΠΈ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠ½ΠΎΠΏΠΊΠΈ Β«New DestinationΒ» Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π² Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΎΠ½Π½ΡΡ ΡΡ Π΅ΠΌΡ Π½Π°ΡΠΈ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΡ.
Β«Π₯Π²Π°ΡΠ°ΡΡΡΒ» ΠΌΡΡΠΊΠΎΠΉ Π·Π° ΡΠΎΡΠΊΡ Π² ΡΠ΅ΡΠ΅Π΄ΠΈΠ½Π΅ ΠΏΡΠ°Π²ΠΎΠΉ ΡΡΠΎΡΠΎΠ½Ρ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ°, ΡΠΎΠ΅Π΄ΠΈΠ½ΠΈΠΌ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΡ Π΄ΡΡΠ³ Ρ Π΄ΡΡΠ³ΠΎΠΌ ΡΠ°ΠΊ, ΠΊΠ°ΠΊ ΠΎΠ½ΠΈ Π΄ΠΎΠ»ΠΆΠ½Ρ Π±ΡΡΡ ΡΠ²ΡΠ·Π°Π½Ρ Π² ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ.
Π ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠΈ Ρ ΠΈΡ Π½Π°Π·Π²Π°Π½ΠΈΡΠΌΠΈ, Π½Π°ΡΠΈ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΡ ΠΏΠΎΠ»ΡΡΠ°Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΡ (id) Β«fragment1Β», Β«fragment2Β», Β«fragment3Β», Β«fragment4Β». ΠΡΠΎ Β«Π°Π΄ΡΠ΅ΡΠ°Β», ΠΊΠΎΡΠΎΡΡΠ΅ Π±ΡΠ΄ΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ ΠΏΡΠΈ ΡΠΊΠ°Π·Π°Π½ΠΈΠΈ ΠΏΡΠ½ΠΊΡΠΎΠ² Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ (Β«destinationsΒ») Π² ΠΈΠ½ΡΡΡΡΠΊΡΠΈΡΡ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΎΠ½Π½ΠΎΠΌΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΡ.
ΠΡΠΎΠΌΠ΅ Β«idΒ», ΠΊΠ°ΠΆΠ΄ΡΠΉ ΡΠ΅Π³ Β«fragmentΒ» ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ Π΅ΡΡ ΡΡΠΈ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°: Β«nameΒ», Β«labelΒ» ΠΈ Β«layoutΒ». ΠΠ°ΡΠ°ΠΌΠ΅ΡΡΡ Β«nameΒ» ΠΈ Β«layoutΒ» Π½Π°Ρ ΡΠ΅ΠΉΡΠ°Ρ Π½Π΅ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΡΡΡ. ΠΠ΄ΠΈΠ½ΡΡΠ²Π΅Π½Π½ΠΎΠ΅, ΡΡΠΎ ΡΡΠΎΠΈΡ ΠΎΡΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ Π² ΡΠ°ΠΉΠ»Π΅ Β«routes.xmlΒ» β ΡΡΠΎ Π½Π°Π·Π²Π°Π½ΠΈΡ (Β«labelΒ») ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠΎΠ². ΠΠ°ΠΌΠ΅Π½ΠΈΠΌ ΠΈΡ Π½Π° Β«Π€ΡΠ°Π³ΠΌΠ΅Π½Ρ β1Β», Β«Π€ΡΠ°Π³ΠΌΠ΅Π½Ρ β2Β», Β«Π€ΡΠ°Π³ΠΌΠ΅Π½Ρ β3Β» ΠΈ Β«Π€ΡΠ°Π³ΠΌΠ΅Π½Ρ β4Β».
1.5. Π€ΡΠ΅ΠΉΠΌ: Π²ΠΈΠ΄ΠΆΠ΅Ρ NavHostFragment
ΠΡΠΊΡΠΎΠ΅ΠΌ ΡΠ°ΠΉΠ» ΠΌΠ°ΠΊΠ΅ΡΠ° Β«res/layout/activity_main.xmlΒ» ΠΈ ΡΠ΄Π°Π»ΠΈΠΌ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ Π²ΠΈΠ΄ΠΆΠ΅Ρ Β«Hello World!Β», ΠΎΠ½ Π½Π°ΠΌ Π½Π΅ ΠΏΠΎΠ½Π°Π΄ΠΎΠ±ΠΈΡΡΡ. Π ΠΏΠ°Π»ΠΈΡΡΠ΅ (Palette) Π²ΡΠ±Π΅ΡΠ΅ΠΌ ΡΠ°Π·Π΄Π΅Π» Β«ΠΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡΒ» (Containers) ΠΈ ΠΏΠ΅ΡΠ΅ΡΠ°ΡΠΈΠΌ ΠΎΡΡΡΠ΄Π° Π½Π° ΠΌΠ°ΠΊΠ΅Ρ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ Π²ΠΈΠ΄ΠΆΠ΅Ρ NavHostFragment (ΡΠΊΠ°Π·Π°Π² Π½Π°Ρ ΡΠ°ΠΉΠ» Β«routesΒ» Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΈΡΡΠΎΡΠ½ΠΈΠΊΠ° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ Π΄Π»Ρ Π½Π΅Π³ΠΎ). ΠΠ½ Π²ΡΠΏΠΎΠ»Π½ΠΈΡ ΡΠΎΠ»Ρ ΡΡΠ΅ΠΉΠΌΠ°, Π² ΠΊΠΎΡΠΎΡΠΎΠΌ Π±ΡΠ΄ΡΡ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡΡ ΡΠ°Π·Π»ΠΈΡΠ½ΡΠ΅ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΡ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ.
ΠΠ·ΠΌΠ΅Π½ΠΈΠΌ id ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ° Π½Π° Β«navFragmentΒ». ΠΠΎΠ΄ ΠΌΠ°ΠΊΠ΅ΡΠ° Π³Π»Π°Π²Π½ΠΎΠΉ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ΅ΠΏΠ΅ΡΡ ΡΠ°ΠΊ:
ΠΠ° ΡΡΠΎΠΌ ΠΏΠΎΠ΄Π³ΠΎΡΠΎΠ²ΠΈΡΠ΅Π»ΡΠ½ΡΠ΅ ΡΠ°Π±ΠΎΡΡ Π·Π°Π²Π΅ΡΡΠ΅Π½Ρ, ΡΠ΅ΠΏΠ΅ΡΡ ΠΌΠΎΠΆΠ½ΠΎ ΠΏΡΠΈΡΡΡΠΏΠ°ΡΡ Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΠΊ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ ΡΠ»Π΅ΠΌΠ΅Π½ΡΠΎΠ² Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈ.
Π§Π°ΡΡΡ 2. ΠΠ»Π΅ΠΌΠ΅Π½ΡΡ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈ
2.1. ΠΠ°Π²ΠΈΠ³Π°ΡΠΈΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠ½ΠΎΠΏΠΎΠΊ
ΠΡΠΊΡΠΎΠ΅ΠΌ ΠΌΠ°ΠΊΠ΅Ρ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ° (Β«fragment_fragment1.xmlΒ»). Π£Π΄Π°Π»ΠΈΠΌ Π½Π΅Π½ΡΠΆΠ½ΡΠΉ ΡΠ΅ΠΊΡΡΠΎΠ²ΡΠΉ Π²ΠΈΠ΄ΠΆΠ΅Ρ, ΠΈΠ·ΠΌΠ΅Π½ΠΈΠΌ ΡΠΈΠΏ ΠΌΠ°ΠΊΠ΅ΡΠ° Ρ Β«FrameLayoutΒ» Π½Π° Π»ΠΈΠ½Π΅ΠΉΠ½ΡΠΉ Π²Π΅ΡΡΠΈΠΊΠ°Π»ΡΠ½ΡΠΉ ΠΈ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΡΡΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ Ρ ΠΈΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡΠ°ΠΌΠΈ Β«button2Β», Β«button3Β», Β«button4Β» ΠΈ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΌΠΈ Π½Π°Π·Π²Π°Π½ΠΈΡΠΌΠΈ Β«Π€ΡΠ°Π³ΠΌΠ΅Π½Ρ 2Β», Β«Π€ΡΠ°Π³ΠΌΠ΅Π½Ρ 3Β», Β«Π€ΡΠ°Π³ΠΌΠ΅Π½Ρ 4Β».
Π ΠΌΠ΅ΡΠΎΠ΄Π΅ Β«onCreateViewΒ» ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ° ΠΏΠΎΠ»ΡΡΠΈΠΌ ΡΡΡΠ»ΠΊΡ Π½Π° Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΎΠ½Π½ΡΠΉ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅Ρ (ΠΎΠ±ΡΠ΅ΠΊΡ Β«NavControllerΒ») ΠΈ Π·Π°ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΠΈΡΡΠ΅ΠΌ ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ ΠΏΡΠΈ Π½Π°ΠΆΠ°ΡΠΈΠΈ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠΈ: ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ Β«setOnClickListenerΒ» Π΄Π»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΈ ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΡΠ»ΡΡΠ°ΡΠ΅Π»Ρ ΠΊΠ½ΠΎΠΏΠΊΠΈ, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΡΠΈ ΠΊΠ»ΠΈΠΊΠ΅ ΠΏΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ΅ Π±ΡΠ΄Π΅Ρ ΠΏΠ΅ΡΠ΅Π΄Π°Π²Π°ΡΡ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΎΠ½Π½ΠΎΠΌΡ ΠΊΠΎΠ½ΡΡΠΎΠ»Π»Π΅ΡΡ Π°Π΄ΡΠ΅Ρ (id) ΡΠΎΡΠΊΠΈ Π½Π°Π·Π½Π°ΡΠ΅Π½ΠΈΡ Π²ΠΌΠ΅ΡΡΠ΅ Ρ ΠΊΠΎΠΌΠ°Π½Π΄ΠΎΠΉ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΡΠΈΡΡΡΡ (navigate) Π½Π° ΡΠΊΠ°Π·Π°Π½Π½ΡΠΉ Π°Π΄ΡΠ΅Ρ.
ΠΡΠΎΠ²Π΅ΡΠΈΠΌ, ΠΊΠ°ΠΊ ΡΠ°Π±ΠΎΡΠ°ΡΡ Π½Π°ΡΠΈ ΠΊΠ½ΠΎΠΏΠΊΠΈ.
ΠΠ΄Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠ° β ΠΎΠ΄Π½Π° ΡΡΡΠΎΡΠΊΠ° ΠΊΠΎΠ΄Π° β ΠΈ ΠΊΠ»ΠΈΠΊ ΠΏΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ΅ ΠΏΠ΅ΡΠ΅ΠΌΠ΅ΡΠ°Π΅Ρ Π½Π°Ρ ΠΊ ΡΠΊΠ°Π·Π°Π½Π½ΠΎΠΌΡ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΡ. ΠΡΠΎΡΡΠΎ, Π½Π΅ ΡΠ°ΠΊ Π»ΠΈ?
ΠΠΎ Π±Π΅Π· ΠΌΠ΅Π½Ρ Π½Π΅ ΠΎΡΠ΅Π½Ρ ΡΠ΄ΠΎΠ±Π½ΠΎ, ΠΏΡΠΈΡ ΠΎΠ΄ΠΈΡΡΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ Β«ΠΠ°Π·Π°Π΄Β» Π΄Π»Ρ Π²ΠΎΠ·Π²ΡΠ°ΡΠ΅Π½ΠΈΡ Π½Π° ΡΡΠ°ΡΡΠΎΠ²ΡΠΉ ΡΠΊΡΠ°Π½.
2.2. ΠΠΎΠΊΠΎΠ²ΠΎΠ΅ ΠΌΠ΅Π½Ρ (drawer)
2.2.1. Π Π΅ΡΡΡΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» ΠΌΠ΅Π½Ρ
Π ΠΊΠ°ΡΠ°Π»ΠΎΠ³Π΅ Β«res/menuΒ» ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΡΠ΅ΡΡΡΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» ΠΌΠ΅Π½Ρ Β«drawer_menu.xmlΒ». ΠΠΎΠ±Π°Π²ΠΈΠΌ Π² Π½Π΅Π³ΠΎ ΠΏΡΠ½ΠΊΡΡ ΠΌΠ΅Π½Ρ, ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΈΠ· ΠΊΠΎΡΠΎΡΡΡ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠΎΠ±ΠΎΠΉ ΡΠ΅Π³ Β«itemΒ» Ρ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠ°ΠΌΠΈ Β«idΒ» (Π΄ΠΎΠ»ΠΆΠ΅Π½ ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΠΎΠ²Π°ΡΡ ΡΠ°ΠΊΠΎΠ²ΠΎΠΌΡ Π² Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΎΠ½Π½ΠΎΠΌ Π³ΡΠ°ΡΠ΅ Β«routes.xmlΒ», Β«titleΒ» (Π·Π°Π³ΠΎΠ»ΠΎΠ²ΠΎΠΊ, ΠΎΠ½ ΠΌΠΎΠΆΠ΅Ρ Π±ΡΡΡ Π΄ΡΡΠ³ΠΈΠΌ), Β«iconΒ» (ΠΌΡ ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΠ΅ΠΌ ΠΎΠ΄Π½Ρ ΠΈ ΡΡ ΠΆΠ΅ ΠΊΠ°ΡΡΠΈΠ½ΠΊΡ Π΄Π»Ρ Π²ΡΠ΅Ρ ΠΏΡΠ½ΠΊΡΠΎΠ², Π½ΠΎ, ΠΊΠΎΠ½Π΅ΡΠ½ΠΎ ΠΆΠ΅, ΠΎΠ½ΠΈ ΠΌΠΎΠ³ΡΡ Π±ΡΡΡ ΡΠ°Π·Π½ΡΠΌΠΈ) ΠΈ Π΄Ρ. ΠΠ°ΡΠ΅ ΠΌΠ΅Π½Ρ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΠ°ΠΊ:
2.2.2. Π¨Π°Π±Π»ΠΎΠ½ DrawerLayout ΠΈ Π²ΠΈΠ΄ΠΆΠ΅Ρ NavigationView Π² ΠΌΠ°ΠΊΠ΅ΡΠ΅ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ
ΠΡΠΊΡΠΎΠ΅ΠΌ ΡΠ°ΠΉΠ» ΠΌΠ°ΠΊΠ΅ΡΠ° Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ Β«activity_main.xmlΒ».
ΠΠΎΡΠ»Π΅ ΠΏΠ΅ΡΠ²ΠΎΠ³ΠΎ ΡΠ΅Π³Π° (xml versionβ¦) Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π½Π°ΡΠ°Π»ΠΎ ΡΠ΅Π³Π° Β«DrawerLayoutΒ».
Π ΠΊΠΎΠ½Π΅Ρ ΡΠ°ΠΉΠ»Π° Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Π²ΠΈΠ΄ΠΆΠ΅Ρ Β«NavigationViewΒ» ΠΈ ΠΎΠΊΠΎΠ½ΡΠ°Π½ΠΈΠ΅ ΡΠ΅Π³Π° Β«DrawerLayoutΒ».
2.2.3. ΠΠΎΠ΄ΠΊΠ»ΡΡΠ΅Π½ΠΈΠ΅ Π±ΠΎΠΊΠΎΠ²ΠΎΠ³ΠΎ ΠΌΠ΅Π½Ρ Π² ΠΊΠ»Π°ΡΡΠ΅ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ
ΠΡΠΊΡΠΎΠ΅ΠΌ ΡΠ°ΠΉΠ» Β«MainActivity.ktΒ» ΠΈ Π² ΠΌΠ΅ΡΠΎΠ΄Π΅ Β«onCreateΒ» ΠΏΠΎΠ»ΡΡΠΈΠΌ ΡΡΡΠ»ΠΊΡ Π½Π° Β«navControllerΒ» (Π² Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ ΡΡΠΎ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΡΡΡ ΡΠ»ΠΎΠΆΠ½Π΅Π΅, ΡΠ΅ΠΌ Π±ΡΠ»ΠΎ Π²ΠΎ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ°Ρ ).
ΠΠ°ΡΠ΅ΠΌ Π²ΠΊΠ»ΡΡΠΈΠΌ Π±ΠΎΠΊΠΎΠ²ΠΎΠ΅ ΠΌΠ΅Π½Ρ:
ΠΠΎΠ΄ ΠΊΠ»Π°ΡΡΠ° ΡΠ΅ΠΏΠ΅ΡΡ Π²ΡΠ³Π»ΡΠ΄ΠΈΡ ΡΠ°ΠΊ:
Π’Π΅ΠΏΠ΅ΡΡ ΠΌΠ΅Π½Ρ ΠΏΠΎΡΠ²Π»ΡΠ΅ΡΡΡ Π² ΠΎΡΠ²Π΅Ρ Π½Π° ΡΠ²Π°ΠΉΠΏ ΠΎΡ Π»Π΅Π²ΠΎΠ³ΠΎ ΠΊΡΠ°Ρ ΡΠΊΡΠ°Π½Π°:
Π₯ΠΎΡΠΎΡΠΎ Π±ΡΠ»ΠΎ Π±Ρ Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΈ ΠΊΠ½ΠΎΠΏΠΊΡ ΡΠ»Π΅Π²Π°-Π²Π²Π΅ΡΡ Ρ Π΄Π»Ρ Π²ΡΠ·ΠΎΠ²Π° Π±ΠΎΠΊΠΎΠ²ΠΎΠ³ΠΎ ΠΌΠ΅Π½Ρ, Π²Π΅ΡΠ½ΠΎ?
2.3. ΠΠ½ΠΎΠΏΠΊΠ° ΠΈ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ° Π½Π° ΠΏΠ°Π½Π΅Π»ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ²
Π‘ΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ ΠΏΠΎ ΡΠΌΠΎΠ»ΡΠ°Π½ΠΈΡ ActionBar, ΠΊΠ°ΠΊ ΡΠ΅ΠΊΠΎΠΌΠ΅Π½Π΄ΡΠ΅Ρ ΠΎΡΠΈΡΠΈΠ°Π»ΡΠ½ΠΎΠ΅ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎ, Π·Π°ΠΌΠ΅Π½ΠΈΠΌ Π½Π° Toolbar.
Π§ΡΠΎΠ±Ρ ΠΎΡΠΊΠ»ΡΡΠΈΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠΉ ActionBar, Π² ΡΠ°ΠΉΠ»Π΅ Β«res/values/styles.xmlΒ» Π½Π°ΠΉΠ΄ΡΠΌ ΡΡΡΠΎΠΊΡ
ΠΈ Π·Π°ΠΌΠ΅Π½ΠΈΠΌ Β«DarkActionBarΒ» Π½Π° Β«NoActionBarΒ».
ΠΡΠ»ΠΈΡΠ½ΠΎ, ActionBar ΠΌΡ ΠΎΡΠΊΠ»ΡΡΠΈΠ»ΠΈ.
Π’Π΅ΠΏΠ΅ΡΡ Π΄ΠΎΠ±Π°Π²ΠΈΠΌ Toolbar. ΠΡΠΊΡΠΎΠ΅ΠΌ ΡΠ°ΠΉΠ» Β«activity_main.xmlΒ», Π² ΠΏΠ°Π»ΠΈΡΡΠ΅ (Palette) Π²ΡΠ±Π΅ΡΠ΅ΠΌ ΡΠ°Π·Π΄Π΅Π» Β«ΠΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΡΒ» (Containers) ΠΈ ΠΏΠ΅ΡΠ΅ΡΠ°ΡΠΈΠΌ ΠΎΡΡΡΠ΄Π° Π½Π° ΠΌΠ°ΠΊΠ΅Ρ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ Π²ΠΈΠ΄ΠΆΠ΅Ρ Β«ToolbarΒ». ΠΠ°Π½Π΅Π»Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² Π΄ΠΎΠ±Π°Π²Π»Π΅Π½Π°, Π½ΠΎ ΠΎΠ½Π° ΠΏΠΎΠΊΠ° ΠΏΡΡΡΠ°.
ΠΠ΅ΡΠ΅Ρ ΠΎΠ΄ΠΈΠΌ Π² ΡΠ°ΠΉΠ» Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ Β«MainActivity.ktΒ». Π§ΡΠΎΠ±Ρ Π½Π° Toolbar Π²ΡΠ²Π΅ΡΡΠΈ ΠΊΠ½ΠΎΠΏΠΊΡ ΠΈ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΡΠ΅ΠΊΡΡΠ΅Π³ΠΎ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ°, Π² ΠΌΠ΅ΡΠΎΠ΄ Β«onCreate()Β» Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΡΠ»Π΅Π΄ΡΡΡΠΈΠ΅ ΡΡΡΠΎΠΊΠΈ:
Toolbar ΡΠ΅ΠΏΠ΅ΡΡ Π²ΡΠ²ΠΎΠ΄ΠΈΡ Π½Π°Π·Π²Π°Π½ΠΈΠ΅ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ° ΠΈ ΠΊΠ½ΠΎΠΏΠΊΡ Β«ΠΠ²Π΅ΡΡ Β» (Up) Π΄Π»Ρ Π²Π»ΠΎΠΆΠ΅Π½Π½ΡΡ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠΎΠ².
ΠΠ½ΠΎΠΏΠΊΠ° Β«Π²Π²Π΅ΡΡ
Β» Π² android’Π΅ ΠΏΠΎΡΠ΅ΠΌΡ-ΡΠΎ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π΅ΡΡΡ ΡΡΡΠ΅Π»ΠΊΠΎΠΉ Β«Π²Π»Π΅Π²ΠΎΒ»:
Π§ΡΠΎΠ±Ρ Π½Π° ΡΡΠ°ΡΡΠΎΠ²ΠΎΠΌ ΡΠΊΡΠ°Π½Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π²ΡΠ²ΠΎΠ΄ΠΈΠ»Π°ΡΡ ΠΊΠ½ΠΎΠΏΠΊΠ°-Π³Π°ΠΌΠ±ΡΡΠ³Π΅Ρ, Π½Π°ΠΌ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π² ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠ°ΡΠΈΡ ΠΏΠ°Π½Π΅Π»ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΎΠ² Π΄ΠΎΠ±Π°Π²ΠΈΡΡ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡ Β«drawerLayoutΒ», ΠΊΠΎΡΠΎΡΡΠΉ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ id Π²ΠΈΠ΄ΠΆΠ΅ΡΠ° DrawerLayout ΠΈΠ· ΡΠ°ΠΉΠ»Π° Β«activity_main.xmlΒ».
ΠΠ»ΠΈΠΊ ΠΏΠΎ ΡΡΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠ΅ Π²ΡΠ²ΠΎΠ΄ΠΈΡ Π±ΠΎΠΊΠΎΠ²ΠΎΠ΅ ΠΌΠ΅Π½Ρ.
2.4. ΠΠΈΠΆΠ½Π΅Π΅ ΠΌΠ΅Π½Ρ (Bottom Navigation)
ΠΠ½ΠΎΠ³Π΄Π° Π±ΡΠ²Π°Π΅Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎ Π°ΠΊΡΠ΅Π½ΡΠΈΡΠΎΠ²Π°ΡΡ Π²Π½ΠΈΠΌΠ°Π½ΠΈΠ΅ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π½ΡΡ Π΄Π΅ΠΉΡΡΠ²ΠΈΡΡ , ΠΈ ΡΡΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎ ΡΠ΄Π΅Π»Π°ΡΡ ΡΡΠΎ ΠΏΠΎΠΌΠΎΠ³Π°Π΅Ρ Π½ΠΈΠΆΠ½Π΅Π΅ ΠΌΠ΅Π½Ρ. ΠΠΎΠ±Π°Π²ΠΈΠΌ Π΅Π³ΠΎ Π² ΡΡΠ΅ΡΠΈΠΉ ΡΡΠ°Π³ΠΌΠ΅Π½Ρ.
Π‘Π½Π°ΡΠ°Π»Π° ΡΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΡΠ΅ΡΡΡΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» ΠΌΠ΅Π½Ρ Β«bottom_nav_menu.xmlΒ» Ρ ΠΏΠ°ΡΠΎΠΉ ΡΡΡΠ»ΠΎΠΊ. ΠΠ°ΡΠ΅ΠΌ ΠΎΡΠΊΡΠΎΠ΅ΠΌ ΠΌΠ°ΠΊΠ΅Ρ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ° β3 (ΡΠ°ΠΉΠ» Β«fragment_fragment3.xmlΒ») ΠΈ ΠΏΠ΅ΡΠ΅ΡΠ°ΡΠΈΠΌ Π½Π° Π½Π΅Π³ΠΎ Π²ΠΈΠ΄ΠΆΠ΅Ρ Β«BottomNavigationViewΒ», ΠΏΠΎΠΏΡΡΠ½ΠΎ ΡΠΎΠ³Π»Π°ΡΠΈΠ²ΡΠΈΡΡ Ρ ΠΏΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ IDE Π΄ΠΎΠ±Π°Π²ΠΈΡΡ Π² dependencies Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΡ Β«com.android.support:designΒ».
ΠΡΠ»ΠΈ Π±Ρ ΠΌΡ ΡΠΎΠ·Π΄Π°Π²Π°Π»ΠΈ Π½ΠΈΠΆΠ½Π΅Π΅ ΠΌΠ΅Π½Ρ Π½Π΅ Π΄Π»Ρ ΠΎΠ΄Π½ΠΎΠ³ΠΎ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ°, Π° ΡΡΠ°Π·Ρ Π΄Π»Ρ Π²ΡΠ΅Ρ , ΡΠΎ Π² ΠΌΠ΅ΡΠΎΠ΄ Β«onCreateΒ» ΠΊΠ»Π°ΡΡΠ° Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ (ΡΠ°ΠΉΠ» Β«MainActivity.ktΒ») Π½ΡΠΆΠ½ΠΎ Π±ΡΠ»ΠΎ Π±Ρ Π²ΠΊΠ»ΡΡΠΈΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄:
ΠΠΎΠ½Π΅ΡΠ½ΠΎ, ΠΈ Π²ΠΈΠ΄ΠΆΠ΅Ρ Β«BottomNavigationViewΒ» Π² ΡΠ°ΠΊΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π½Π°Π΄ΠΎ Π±ΡΠ»ΠΎ Π±Ρ ΠΏΠΎΠΌΠ΅ΡΡΠΈΡΡ Π² ΠΌΠ°ΠΊΠ΅Ρ Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΠΈ, Π° Π½Π΅ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ°.
ΠΠΎ ΠΏΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π΄Π°Π½Π½ΠΎΠ΅ ΠΌΠ΅Π½Ρ Π½Π°ΠΌ ΡΡΠ΅Π±ΡΠ΅ΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π²ΠΎ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ΅ β3, ΡΠΎ ΠΈ ΡΠ΅Π΄Π°ΠΊΡΠΈΡΠΎΠ²Π°ΡΡ ΠΌΡ Π±ΡΠ΄Π΅ΠΌ ΠΊΠ»Π°ΡΡ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ° (ΡΠ°ΠΉΠ» Β«Fragment3.ktΒ»), Π° ΠΊΠΎΠ΄ Π±ΡΠ΄Π΅Ρ Π²ΡΠ³Π»ΡΠ΄Π΅ΡΡ ΡΡΡΡ ΡΠ»ΠΎΠΆΠ½Π΅Π΅:
Π ΠΈΡΠΎΠ³Π΅ ΠΌΡ ΠΏΠΎΠ»ΡΡΠΈΠΌ Π½ΠΈΠΆΠ½Π΅Π΅ ΠΌΠ΅Π½Ρ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π±ΡΠ΄Π΅Ρ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡΡ ΡΠΎΠ»ΡΠΊΠΎ Π² 3-ΠΌ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ΅.
Π’ΠΎ ΠΆΠ΅ ΡΠ°ΠΌΠΎΠ΅, Π½ΠΎ Ρ Π΄ΡΡΠ³ΠΈΠΌΠΈ ΡΡΡΠ»ΠΊΠ°ΠΌΠΈ, ΡΠ΄Π΅Π»Π°Π΅ΠΌ ΠΈ Π² 4-ΠΌ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠ΅.
2.5. ΠΡΠΏΠ»ΡΠ²Π°ΡΡΠ΅Π΅ ΠΌΠ΅Π½Ρ (Overflow Menu)
ΠΡΡ ΠΎΠ΄ΠΈΠ½ Π²ΠΈΠ΄ ΠΌΠ΅Π½Ρ β Π²ΡΠΏΠ»ΡΠ²Π°ΡΡΠ΅Π΅ ΠΌΠ΅Π½Ρ, ΠΊΠΎΡΠΎΡΠΎΠ΅ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΠΏΡΠΈ ΠΊΠ»ΠΈΠΊΠ΅ ΠΏΠΎ ΠΊΠ½ΠΎΠΏΠΊΠ΅ (ΡΡΡΠΌ Π²Π΅ΡΡΠΈΠΊΠ°Π»ΡΠ½ΠΎ ΡΠ°ΡΠΏΠΎΠ»ΠΎΠΆΠ΅Π½Π½ΡΠΌ ΡΠΎΡΠΊΠ°ΠΌ) Π² ΠΏΡΠ°Π²ΠΎΠΌ Π²Π΅ΡΡ Π½Π΅ΠΌ ΡΠ³Π»Ρ ΡΠΊΡΠ°Π½Π°.
Π‘ΠΎΠ·Π΄Π°Π΄ΠΈΠΌ ΡΠ΅ΡΡΡΡΠ½ΡΠΉ ΡΠ°ΠΉΠ» ΠΌΠ΅Π½Ρ Β«top_right_menu.xmlΒ» Ρ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΡΠΌΠΈ ΡΡΡΠ»ΠΊΠ°ΠΌΠΈ.
Π ΡΠ°ΠΉΠ»Π΅ Β«MainActivityΒ» Π² ΠΌΠ΅ΡΠΎΠ΄ Β«onCreateΒ» ΠΏΠ΅ΡΠ΅Π΄ Β«toolBar.setupWithNavController. Β» Π΄ΠΎΠ±Π°Π²ΠΈΠΌ ΡΡΡΠΎΠΊΡ Β«setSupportActionBar(toolBar)Β».
Π Π΄Π°Π»Π΅Π΅ Π² ΡΡΠΎΠΌ ΠΆΠ΅ ΠΊΠ»Π°ΡΡΠ΅ ΠΏΠ΅ΡΠ΅ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈΠΌ Π΄Π²Π° ΠΌΠ΅ΡΠΎΠ΄Π°:
ΠΠ°ΠΆΠ°ΡΠΈΠ΅ Π½Π° Π²Π΅ΡΡ Π½ΡΡ ΠΏΡΠ°Π²ΡΡ ΠΊΠ½ΠΎΠΏΠΊΡ ΡΠ΅ΠΏΠ΅ΡΡ ΠΎΡΠΎΠ±ΡΠ°ΠΆΠ°Π΅Ρ Π²ΡΠΏΠ»ΡΠ²Π°ΡΡΠ΅Π΅ ΠΌΠ΅Π½Ρ:
ΠΡΠ°ΡΠΊΠΈΠ΅ Π²ΡΠ²ΠΎΠ΄Ρ ΠΈ ΡΡΡΠ»ΠΊΠ° Π½Π° github
ΠΡΠ΅Π²ΠΈΠ΄Π½ΠΎ, ΡΡΠΎ Navigation Architecture Component ΡΡΡΠ΅ΡΡΠ²Π΅Π½Π½ΠΎ ΠΎΠ±Π»Π΅Π³ΡΠ°Π΅Ρ ΡΡΡΠ΄ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΠΊΠ°. Π‘Π»ΠΎΠΆΠ½ΡΠ΅ Π² ΠΏΡΠΎΡΠ»ΠΎΠΌ Π·Π°Π΄Π°ΡΠΈ ΡΠ΅ΠΏΠ΅ΡΡ ΡΠ΅ΡΠ°ΡΡΡΡ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΈΠΌΠΈ ΡΡΡΠΎΡΠΊΠ°ΠΌΠΈ ΠΊΠΎΠ΄Π°.
ΠΠΎΡΠΊΠΎΠ»ΡΠΊΡ Π³Π»Π°Π²Π½ΠΎΠΉ ΡΠ΅Π»ΡΡ Π΄Π°Π½Π½ΠΎΠΉ ΠΏΡΠ±Π»ΠΈΠΊΠ°ΡΠΈΠΈ Π±ΡΠ»ΠΎ ΠΎΡΠ²Π΅ΡΠΈΡΡ Π±Π°Π·ΠΎΠ²ΡΠ΅ Π°Π»Π³ΠΎΡΠΈΡΠΌΡ ΡΠΎΠ·Π΄Π°Π½ΠΈΡ Π½Π°Π²ΠΈΠ³Π°ΡΠΈΠΈ Π² android-ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠΈ, ΠΌΠ½ΠΎΠ³ΠΈΠ΅ Π΄Π΅ΡΠ°Π»ΠΈ ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΠΈ Π±ΡΠ»ΠΈ ΡΠΌΡΡΠ»Π΅Π½Π½ΠΎ ΠΎΡΡΠ°Π²Π»Π΅Π½Ρ Π·Π° ΠΊΠ°Π΄ΡΠΎΠΌ.
ΠΠΎΠΉ Π³ΡΠ°ΡΠΈΠΊ ΡΠ°Π±ΠΎΡΡ ΠΎΠ±ΡΡΠ½ΠΎ Π½Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΠΏΠΎΠ΄Π΄Π΅ΡΠΆΠΈΠ²Π°ΡΡ Π΄ΠΈΡΠΊΡΡΡΠΈΠΈ, Π½ΠΎ ΠΠ°ΡΠΈ ΠΊΠΎΠΌΠΌΠ΅Π½ΡΠ°ΡΠΈΠΈ Π² Π»ΡΠ±ΠΎΠΌ ΡΠ»ΡΡΠ°Π΅ Π±ΡΠ΄ΡΡ ΠΏΠΎΠ»Π΅Π·Π½Ρ Π΄Π»Ρ ΠΏΠΎΡΠ΅ΡΠΈΡΠ΅Π»Π΅ΠΉ ΡΠ°ΠΉΡΠ° ΠΈ ΠΏΠΎΡΠΎΠΌΡ Π²ΡΠ΅Π³Π΄Π° ΠΏΡΠΈΠ²Π΅ΡΡΡΠ²ΡΡΡΡΡ.