-
Anonymous
Jetpack Navigation Создать неправильную анимацию перехода.
Сообщение
Anonymous »
При использовании NavHost иногда появляются неправильные анимации, но не при использовании AnimatedContent.
Версия создания навигации: 2.8.0-alpha05
Версия создания пользовательского интерфейса: 1.7.0-beta04
Версия Kotlin: 2.0.0
Код: Выделить всё
@Composable
fun MainScreen() {
// val navController = rememberNavController()
val state = remember { mutableStateOf(0) }
Scaffold(
bottomBar = {
NavigationBar {
TabNavigationItem(state, Tab.Home)
TabNavigationItem(state, Tab.Favorites)
TabNavigationItem(state, Tab.Profile)
}
},
) {
//Works well
AnimatedContent(
state.value,
modifier = Modifier
.fillMaxSize()
.padding(it),
transitionSpec = {
(fadeIn(animationSpec = tween(220, delayMillis = 90))
.togetherWith(fadeOut(animationSpec = tween(220, delayMillis = 90))))
},
) { target ->
when (target) {
0 -> HomeScreen()
1 -> FavoritesScreen()
else -> ProfileScreen()
}
}
//Sometimes incorrect animation
// NavHost(
// navController = navController,
// startDestination = Tab.Home.route,
// modifier = Modifier.padding(it),
// ) {
// homeDestination()
// favoritesDestination()
// profileDestination()
// }
}
}
Подробнее здесь:
https://stackoverflow.com/questions/786 ... -animation
1719664182
Anonymous
При использовании NavHost иногда появляются неправильные анимации, но не при использовании AnimatedContent.
Версия создания навигации: 2.8.0-alpha05
Версия создания пользовательского интерфейса: 1.7.0-beta04
Версия Kotlin: 2.0.0
[code]@Composable
fun MainScreen() {
// val navController = rememberNavController()
val state = remember { mutableStateOf(0) }
Scaffold(
bottomBar = {
NavigationBar {
TabNavigationItem(state, Tab.Home)
TabNavigationItem(state, Tab.Favorites)
TabNavigationItem(state, Tab.Profile)
}
},
) {
//Works well
AnimatedContent(
state.value,
modifier = Modifier
.fillMaxSize()
.padding(it),
transitionSpec = {
(fadeIn(animationSpec = tween(220, delayMillis = 90))
.togetherWith(fadeOut(animationSpec = tween(220, delayMillis = 90))))
},
) { target ->
when (target) {
0 -> HomeScreen()
1 -> FavoritesScreen()
else -> ProfileScreen()
}
}
//Sometimes incorrect animation
// NavHost(
// navController = navController,
// startDestination = Tab.Home.route,
// modifier = Modifier.padding(it),
// ) {
// homeDestination()
// favoritesDestination()
// profileDestination()
// }
}
}
[/code]
[img]https://i.sstatic.net/JwakqC2C.gif[/img]
Подробнее здесь: [url]https://stackoverflow.com/questions/78685870/jetpack-navigation-compose-incorrect-transition-animation[/url]