Tema
/
Mobiliosios programėlės KOTLIN
Pamoka 4 / 14 Navigacija (Nav3) ~45 min
📖 Teorija

Kodėl navigacija ir kas yra Nav3

Turi du ekranus — meniu ir krepšelį — bet jie negyvena kartu. Reikia navigacijos: kaip pereiti iš vieno į kitą ir kaip grįžti atgal.

Android tam turi Navigation 3 (Nav3) — naują požiūrį. Sena Navigation 2 laikė „grafą" atskirai; Nav3 idėja paprastesnė: atgalinis stekas yra tiesiog ekranų sąrašas, kurį tu valdai.

backStack = [ Menu ]                 ← paleidus
paspaudi krepšelį:
backStack = [ Menu, Cart ]           ← Cart „ant viršaus"
paspaudi Back:
backStack = [ Menu ]                 ← Cart nukrenta, grįžti į Menu

Trys dalys:

  • Screen — kiekvienas ekranas kaip NavKey (Menu, Cart, MenuItemDetail(itemId)). Tai ne UI, o „adresas".
  • rememberNavBackStack(Screen.Menu) — sukuria steką, prasidedantį nuo meniu; jis išgyvena pasukimą.
  • NavDisplay + entryProvider — susieja kiekvieną Screen su jo kompozuojamu ekranu ir piešia viršutinį steko elementą.

Pereiti = pridėti į steką (backStack.add(Screen.Cart)). Grįžti = sistema pati nuima viršų paspaudus Back.

Verta žinoti (patikrink dokus). Navigation 3 dar alpha — API ir importai (androidx.navigation3.runtime, androidx.navigation3.ui) tarp alpha versijų keičiasi. Šio kurso kodas parašytas su 1.1.4; jei tavo versija naujesnė, pavadinimai gali skirtis — pasitikrink oficialius dokus. Idėja (ekranai kaip raktai, stekas kaip sąrašas) lieka ta pati.

Statykim: pirma — ekranų „adresai", tada — grafas.