При использовании навигации voyager для обработки нажатия кнопки «назад» после экрана входа в систему должен появиться эAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 При использовании навигации voyager для обработки нажатия кнопки «назад» после экрана входа в систему должен появиться э

Сообщение Anonymous »

Я использую библиотеку voyager для навигации в своем приложении для Android.
https://voyager.adriel.cafe/navigation/
Но у меня возникла проблема с переходом с экрана входа на главный экран.
login screen ==> home screen

Однако после того, как пользователь вошел в систему, экран входа в систему должен появиться, чтобы пользователь не мог вернуться к нему. Но при использовании системы с обратным нажатием она попытается снова открыть экран входа в систему.
Это мой LoginScreeRoute
object LoginScreenRoot : Screen {

@Composable
override fun Content() {
val loginViewModel = koinViewModel()
val navigator = LocalNavigator.currentOrThrow

LoginScreen(
loginState = loginViewModel.loginState,
onLoginAction = loginViewModel::loginAction,
onLoginSuccess = {
/** Navigate to the home screen */
Timber.d("onLoginSuccess")
navigator.popAll() // Try and pop the LoginScreen so we do go back to it
navigator.push(HomeScreenRoute)
},
onLoginFailure = {
/** Display message */
Timber.d("onLoginFailure")
},
onForgotPassword = {
/** Navigate to the home screen */
Timber.d("onForgotPassword")
navigator.push(ResetScreenRoute)
}
)
}
}

А это мой домашний экран
object HomeScreenRoute : Screen {

@Composable
override fun Content() {
val homeViewModel = koinViewModel()
val homeState = homeViewModel.homeState
val navigator = LocalNavigator.currentOrThrow

HomeScreen(
onForwardButtonClicked = {
navigator.push(SurveyStartScreenRoute)
},
homeState = homeState
)
}
}

И в моей основной активности
setContent {
BusbySurveyTheme {
val scope = rememberCoroutineScope()

if(mainViewModel.mainState.isLoggedIn) {
Navigator(screen = HomeScreenRoute)
}
else {
GradientBackground {
Navigator(screen = LoginScreenRoot)
}
}
}
}


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

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

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

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

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

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

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