Sukurk Screen.kt — ekranai kaip NavKey
Pirma — ekranų „adresai". Sukurk paketą navigation ir jame Screen.kt.
sealed class Screen : NavKey— baigtinis ekranų sąrašas.sealedreiškia „visi variantai čia pat", todėl kompiliatorius padeda nieko nepamiršti.data object Menu,data object Cart— ekranai be duomenų.data class MenuItemDetail(val itemId: Int)— ekranas su argumentu (kurią picą rodyti). Argumentas keliauja kartu su „adresu".@Serializable— būtinas: Nav3 taip išsaugo ir atkuria steką, jei sistema nužudo procesą (pvz. telefonui pritrūkus atminties).
Kol kas įrašom tik tuos ekranus, kurie jau egzistuoja (Menu, MenuItemDetail, Cart). Login, Scan, OrderHistory pridėsim savo pamokose — negaliam nukreipti į ekraną, kurio dar nėra.
Patikrink. Projektas kompiliuojasi be klaidų. Screen kol kas niekur nenaudojamas — jį pajungsim kitame žingsnyje. Jei NavKey ar @Serializable raudoni — patikrink, ar build.gradle.kts turi navigation3 bibliotekas ir kotlin.serialization pluginą (jie ateina su Compose šablonu + Nav3).
Patarimas. Pastebėk skirtumą tarp
data object(vienas fiksuotas ekranas, pvz. krepšelis) irdata classsu argumentu (MenuItemDetail(itemId)). Kai 5 pamokoje meniu bus tikras, paspaudus picą galėsi nukreipti įMenuItemDetail(item.id)— ir aprašo ekranas žinos, kurią picą rodyti.