Как отменить пользовательскую анимацию перехода Navhost в создании реактивного ранца (при переходе назад)Android

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Как отменить пользовательскую анимацию перехода Navhost в создании реактивного ранца (при переходе назад)

Сообщение Anonymous »

Я реализовал простую типобезопасную навигационную систему для своего приложения для создания реактивного ранца, вот как я это реализовал.

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

@Serializable
object HomeScreen

@Serializable
object AboutScreen

@Composable
fun NavigationAnimation(){
val navController = rememberNavController()

NavHost(
navController = navController,
startDestination = HomeScreen,
){
composable(
enterTransition = {
zoomInTransition()
},
exitTransition = {
zoomOutTransition()
}
){
HomeScreen(
onClickGoAboutScreen = {
navController.navigate(AboutScreen)
}
)
}

composable(
enterTransition = {
zoomInTransition()
},
exitTransition = {
zoomOutTransition()
}
){
AboutScreen(
onClickGoHomeScreen = {
navController.navigate(HomeScreen)
}
)
}
}
}

А вот код моей анимации

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

// * Optimized only for the forward view (I made it slow for better visibility)
fun zoomInTransition(): EnterTransition {
return scaleIn(
initialScale = 0.85f, // ? When reverse/backward navigation the value will be 1.15f
animationSpec = tween(
durationMillis = 2000, // * Actual duration 250
easing = FastOutSlowInEasing
)
)+ fadeIn(
animationSpec = tween(
durationMillis = 2000, // * Actual duration 250
easing = FastOutSlowInEasing
)
)
}

fun zoomOutTransition(): ExitTransition {
return scaleOut(
targetScale = 1.15f, // ? When reverse/backward navigation the value will be 0.85f
animationSpec = tween(
durationMillis = 2000, // * Actual duration 250
easing = FastOutSlowInEasing
)
) + fadeOut(
animationSpec = tween(
durationMillis = 2000, // * Actual duration 250
easing = FastOutSlowInEasing
)
)
}

Все, что мне нужно, — это когда я перемещаюсь назад или нажимаю кнопку «Назад», анимация начнется с обратной стороны. Для лучшего понимания: когда я перехожу от HomeScreen к AboutScreen, мне нужна анимация прямой навигации, но когда я возвращаюсь (или нажимаю кнопку назад) от AboutScreen к HomeScreen, я хочу повернуть анимацию вспять.

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

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

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

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

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

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

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