Я использую EnterTransition Jetpack Compose для анимации навигации между экранами. Переход отлично работает в authGraph (вы можете найти его структуру на homeGraph ниже. Она такая же), но он не применяется при переходе к ChatScreen в homeGraph. Почему EnterTransition не применяется к ChatScreen в homeGraph?
Я попробовал, чтобы EnterTransition работал для других экранов в другом графике. Обычно существует несколько способов вызвать ChatRoute с аргументами, но я пытался удалить все аргументы, если проблема связана с сериализацией, но все равно не помогло. Удален текущий переход, чтобы просто использовать FadeIn(), но это не сработало.
NavHost, который управляет несколькими графиками:
@Composable
fun AppNavHost(appState: MedicineAIAppState, startDestination: String) {
val navController = appState.navController
NavHost(
navController = navController,
startDestination = startDestination.toKClassRoute(),
) {
onboardingGraph(navController)
authGraph(navController)
homeGraph(navController)
}
}
HomeGraph включает ChatScreen — экран, на котором переход не работает. Также AuthGraph имеет такую же структуру и там работает та же навигация.
@Serializable data object HomeGraph
fun NavGraphBuilder.homeGraph(navController: NavHostController) {
navigation(startDestination = HomeRoute) {
homeScreen(onStartChatClick = navController::navigateToChatWithoutInbox)
inboxScreen(
onNewChatClick = navController::navigateToChatWithEmpty,
onChatClick = navController::navigateToChatWithInboxAndTopic
)
chatScreen(
onBackClick = navController::popBackStack,
onChatCleared = navController::navigateToInbox
)
profileScreen()
}
}
Это определение ChatScreen с EnterTransition:
fun NavGraphBuilder.chatScreen(
onBackClick: () -> Unit,
onChatCleared: () -> Unit
) {
composable(
enterTransition = {
fadeIn(
animationSpec = tween(300, easing = LinearEasing)
) + slideIntoContainer(
animationSpec = tween(300, easing = EaseIn),
towards = AnimatedContentTransitionScope.SlideDirection.Start
)
},
) {
ChatScreen(
onBackClick = onBackClick,
onChatCleared = onChatCleared
)
}
}
Подробнее здесь: https://stackoverflow.com/questions/793 ... -animation
Создание навигации не применяет анимацию enterTransition ⇐ Android
Форум для тех, кто программирует под Android
-
Anonymous
1736348677
Anonymous
Я использую EnterTransition Jetpack Compose для анимации навигации между экранами. Переход отлично работает в authGraph (вы можете найти его структуру на homeGraph ниже. Она такая же), но он не применяется при переходе к ChatScreen в homeGraph. Почему EnterTransition не применяется к ChatScreen в homeGraph?
Я попробовал, чтобы EnterTransition работал для других экранов в другом графике. Обычно существует несколько способов вызвать ChatRoute с аргументами, но я пытался удалить все аргументы, если проблема связана с сериализацией, но все равно не помогло. Удален текущий переход, чтобы просто использовать FadeIn(), но это не сработало.
NavHost, который управляет несколькими графиками:
@Composable
fun AppNavHost(appState: MedicineAIAppState, startDestination: String) {
val navController = appState.navController
NavHost(
navController = navController,
startDestination = startDestination.toKClassRoute(),
) {
onboardingGraph(navController)
authGraph(navController)
homeGraph(navController)
}
}
HomeGraph включает ChatScreen — экран, на котором переход не работает. Также AuthGraph имеет такую же структуру и там работает та же навигация.
@Serializable data object HomeGraph
fun NavGraphBuilder.homeGraph(navController: NavHostController) {
navigation(startDestination = HomeRoute) {
homeScreen(onStartChatClick = navController::navigateToChatWithoutInbox)
inboxScreen(
onNewChatClick = navController::navigateToChatWithEmpty,
onChatClick = navController::navigateToChatWithInboxAndTopic
)
chatScreen(
onBackClick = navController::popBackStack,
onChatCleared = navController::navigateToInbox
)
profileScreen()
}
}
Это определение ChatScreen с EnterTransition:
fun NavGraphBuilder.chatScreen(
onBackClick: () -> Unit,
onChatCleared: () -> Unit
) {
composable(
enterTransition = {
fadeIn(
animationSpec = tween(300, easing = LinearEasing)
) + slideIntoContainer(
animationSpec = tween(300, easing = EaseIn),
towards = AnimatedContentTransitionScope.SlideDirection.Start
)
},
) {
ChatScreen(
onBackClick = onBackClick,
onChatCleared = onChatCleared
)
}
}
Подробнее здесь: [url]https://stackoverflow.com/questions/79339670/compose-navigation-doesnt-apply-the-entertransition-animation[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия