Отчаянная структура навигации с официальной навигационной библиотекойAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Отчаянная структура навигации с официальной навигационной библиотекой

Сообщение Anonymous »

Я нацелен на этот сценарий:
У меня есть разные функции, такие как Auth с 3 экранами, профиль с несколькими экранами, электронными письмами с несколькими экранами и т. Д. ... Я хочу настроить структуру навигации, которая в основном использует нижнюю навигационную панель, но пользователи также могут перемещаться между экранами с разных функций, и, кроме того, что обратно между различными функциями (при первой навигации через нижнюю панель). /> Что я попробовал: < /p>

Пробовал метод навигации, который создает новые графики для каждой функции: < /li>
< /ul>

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

  NavHost(
modifier = Modifier.padding(padding),
navController = navController,
startDestination = LoginDestination
) {
emailGraph(necessary callbacks ...)

profileGraph(...)

composerScreenRoot(...)
}
и в нижней панели использовал эту функцию Navigatetopleveldestination :

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

fun NavController.navigateToTopLevelDestination() {
navigate(EmailRootDestination) {
popUpTo(graph.findStartDestination().id) {
saveState = true
}
launchSingleTop = true
restoreState = true
}
}
Но основной проблемой с этой функцией при использовании пшеницы Отдельные навигационные графики являются graph.findstartdestination (). ID Часть этой функции - сброс обратной связи к Top Top Byster Graphs Start Destination вместо того, как текущий пункт назначения, и это вызывает кнопку «Назад», чтобы отвести пользователь, вместо того, чтобы навсегда нависвязанность. />
Пробовал использовать несколько Navhost < /code> s для каждой функции в нижней панели, например: < /li>
< /ul>

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

NavHost(
modifier = Modifier.padding(paddingValues),
navController = navController,
startDestination = EmailRootDestination )
{

composable {
val emailNavController = rememberNavController()

EmailHost(...)
}

composable {
val profileNavController = rememberNavController()

ProfileHost(...)
}

composable {
val composerNavController = rememberNavController()

ComposerHost(...)
}
}
}
Но на этот раз проблема переживала между одним экраном функции к экрану другой функции

Попробого, чтобы дать различные пункты назначения для всплывающего метода , чтобы увидеть, не ошибаюсь ли я, потому что я сказал, что BackStack не может быть защищен по всему навигации в отличие от кодового кодового. Функция: < /li>
< /ul>

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

fun NavController.navigateToTopLevelDestination(destination: TopLevelDestination) {
navigate(EmailGraphDestination) {
popUpTo(currentDestination?.parent?.findStartDestination()?.id!!) {
saveState = true
}
launchSingleTop = true
restoreState = true
}
}
Добавление этого вызвано приведенной ниже странной и странной проблемой при навигации по нижней панели:

. Все потому, что я ожидаю, так это сброс обратного удара к текущим функциям. Начало назначения, а не в лучшем случае, чтобы обеспечить необходимую функциональность
Есть ли какие -либо предложения или любой образцовый проект, который реализует этот тип навигации со всем, что защита от обратной связи и защита состояний будет здорово читать, что репо < /p>

Подробнее здесь: https://stackoverflow.com/questions/795 ... on-library
Реклама
Ответить Пред. темаСлед. тема

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

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

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

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

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

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