Junior — Middle
Jetpack Compose Navigation колдонуп жатканда экрандар ортосунда маалыматтарды өткөрүүнү ишке ашыруунун кандай ыкмалары бар?
sobes.tech AI
AIден жооп
Jetpack Compose Navigation-де экрандар арасында маалыматтарды өткөрүү үчүн бир нече ыкмалар бар:
- Навигация аргументтери
- Жолду жарыялаганда, кийинки экранга өткөрүлө турган параметрлерди көрсөтө аласыз.
- Примитив түрлөрү жана саптар колдоого алынат.
- id өткөрүү мисалы:
navController.navigate("detail_screen/$itemId")
composable("detail_screen/{itemId}") { backStackEntry ->
val itemId = backStackEntry.arguments?.getString("itemId")
DetailScreen(itemId)
}
-
Shared ViewModel
- Навигация графы же ишмердик деңгээлиндеги ViewModel колдонуу.
- Эки экран тең бирдей ViewModel үлгүсүнө кирип, маалымат алмаша алышат.
-
Күй (State Hoisting)
- Экран функцияларынын параметрлери аркылуу күйдү өткөрүү.
- Кичинекей маалыматтар үчүн жана экрандар бир компонентте болсо ылайыктуу.
-
savedStateHandle аркылуу маалыматтарды сактоо
- Маалыматтарды сакталган күйгө сактап, мурдагы экранга кайтаруу алдында коюу.
- Бул маалыматтарды кайра берүү мүмкүнчүлүгүн берет.
savedStateHandle колдонуу мисалы:
// Маалыматты кайра берүү
navController.currentBackStackEntry?.savedStateHandle?.set("key", value)
// Мурдагы экранда маалымат алуу
val savedStateHandle = navController.previousBackStackEntry?.savedStateHandle
val value = savedStateHandle?.get<String>("key")
Демек, ыкманы тандоо маалыматтын түрү жана көлөмүнө, ошондой эле тиркеменин архитектурасына көз каранды.