Как применить пользовательскую анимацию перехода NavHost в приложении Jetpack Compose для AndroidAndroid

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

Сообщение Anonymous »

Я реализую новую модель навигационной системы Android NavHost. Однако я не могу решить, как применить пользовательскую анимацию перехода.
Вот мой реализованный навигационный хост,

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

AndroidNavigationTheme {
val navController = rememberNavController()

NavHost(
navController = navController,
startDestination = HomeScreen,
){
composable{
HomeScreen(
onClickGoAboutScreen = {
navController.navigate(AboutScreen)
}
)
}

composable{
AboutScreen(
onClickGoContentScreen = {
navController.navigate(ContentScreen)
}
)
}

composable{
ContentScreen(
onClickGoHomeScreen = {
navController.navigate(HomeScreen)
}
)
}
}

}

@Serializable
object HomeScreen

@Serializable
object AboutScreen

@Serializable
object ContentScreen

А вот мой код анимации перехода,

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

fun scaleIntoContainer(
direction: ScaleTransitionDirection = ScaleTransitionDirection.INWARDS,
initialScale: Float = if (direction == ScaleTransitionDirection.OUTWARDS) 0.9f else 1.1f
): EnterTransition {
return scaleIn(
animationSpec = tween(220, delayMillis = 90),
initialScale = initialScale
) + fadeIn(animationSpec = tween(220, delayMillis = 90))
}

fun scaleOutOfContainer(
direction: ScaleTransitionDirection = ScaleTransitionDirection.OUTWARDS,
targetScale: Float = if (direction == ScaleTransitionDirection.INWARDS) 0.9f else 1.1f
): ExitTransition {
return scaleOut(
animationSpec = tween(
durationMillis = 220,
delayMillis = 90
), targetScale = targetScale
) + fadeOut(tween(delayMillis = 90))
}

enum class ScaleTransitionDirection {
INWARDS,
OUTWARDS
}
Мне не очень нравится переход по умолчанию, предоставленный Navhost. Если возможно, предложите также хорошую анимацию перехода.

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

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

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

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

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

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

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