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 kaipNavKey(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ąScreensu 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 su1.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.