Как лучше всего внедрить навигацию для JetPack Compose?Android

Форум для тех, кто программирует под Android
Ответить
Anonymous
 Как лучше всего внедрить навигацию для JetPack Compose?

Сообщение Anonymous »

Я изучаю разработку мобильных приложений, и это мой первый пост Stackoverflow! Полем Какой самый эффективный способ написать навигацию для кнопки Onclicks? Я нахожу то, что я делаю в настоящее время, чтобы быть проблематичным потенциально, и хотел бы узнать предпочтительные методы людей. Я хочу следовать лучшим практикам. < /P>
Контекст моего приложения: < /p>

Topbar с заголовком < /li> < Br /> BottomNavbar имеет 4 пункта назначения: Home, Test (выводит вас на тест -экран), история, настройка < /li>
Testscreen имеет вложенные композиционные функции, которые проводят пользователя через тест (он же много кликов кнопок, чтобы пройти тест). < /li>
< /ul>
Я вижу, что в документации, в красном предупреждении не будет проходить NavControllers через композиты и разоблачить событие. Вместо этого. У меня есть настройка экрана, сочика и CardFrame1. У CardFrame1 есть кнопка, чтобы перейти в Comestreen: < /p>

Код: Выделить всё

@Serializable
object Main
@Serializable
object Setting

// this is being called form MainActivity
@Composable
fun AppHost() {
navController = rememberNavController()

NavHost(
navController = navController,
startDestination = Screen.Main.route
) {
composable(Screen.Main.route) {
MainScreen(
onNavigateToMeasure = {
navController.navigate(Screen.SomeScreen.route)
}
)
}

composable(Screen.Setting.route) {
SettingPage(
onNavigateToSetting1 = {
navController.navigate(Screen.Test1.route)
}
)
}
}
}

@Composable
fun SettingPage(someOnClick: () -> Unit){
Column(){
CardFrame1(someOnClick)
}
}
Для использования vavcontroller.navigate (screen.test1.route) в кнопке в CardFrame1 (Button(onClick = someOnClick){}< /code>) для навигации. < /p>
Я понял, что: < /p>

Мне придется выполнить эту функцию лямбды ( () -> Unit) Каждый раз, когда у меня есть кнопка или любой другой триггер, чтобы перейти к другому композиционному < /li>
Если навигация используется в слое композиционных функций, которые более глубокие, тогда я хотел бы нужно пройти Lambda через все из них как параметры. Полем Но я хотел знать, какие другие реализации люди считают действительными. Я видел много постов на YouTube и средних, где люди будут передавать NavController в качестве параметра через композиции, но я подумал, что это не рекомендуется из документации Android. Централизованный класс навигации, который обрабатывает всю навигацию, чтобы вам не приходилось распространять их через слои композиционных устройств и вместо этого может вызвать метод навигации через объект класса.

Подробнее здесь: https://stackoverflow.com/questions/794 ... ck-compose
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Android»