Предпросмотр для жеста "Назад" и системные анимации включены по умолчанию. Если ваше приложение перехватывает событие возврата и вы не перешли на предпросмотр для жеста "Назад", обновите приложение, чтобы использовать поддерживаемые API обратной навигации.
Включить системную анимацию по умолчанию
Системные анимации возврата на главный экран, перехода между действиями и задачами доступны на устройствах с Android 15 и более поздними версиями для приложений, которые перешли на поддерживаемые API обработки жеста "Назад".
- Возврат на главный экран.
- Переходы между действиями. Переходы между действиями в приложении.
- Переходы между задачами – переходы между задачами.
Эти анимации включены по умолчанию в Android 15 и более поздних версиях. На устройствах с Android 13 или 14 пользователи могут включить их в разделе Для разработчиков.
Чтобы получить системные анимации, обновите зависимость AndroidX Activity до версии 1.6.0 или более поздней.
Как включить предпросмотр для жеста "Назад" с помощью Navigation Compose
Чтобы использовать предпросмотр для жеста "Назад" в Navigation Compose, убедитесь, что вы используете библиотеку navigation-compose 2.8.0 или более поздней версии.
Navigation Compose автоматически переключается между экранами, когда пользователь проводит пальцем назад:
При навигации можно создавать собственные переходы с помощью popEnterTransition и popExitTransition. Применив эти модификаторы к NavHost, вы сможете настроить анимацию для экранов входа и выхода. С их помощью можно создавать различные эффекты, например масштабирование, затухание или скольжение.
В этом примере scaleOut используется в popExitTransition, чтобы уменьшить размер закрывающегося экрана, когда пользователь возвращается назад. Кроме того, параметр transformOrigin определяет точку, вокруг которой происходит анимация масштабирования. По умолчанию это центр экрана (0.5f, 0.5f). Вы можете изменить это значение, чтобы масштабирование начиналось из другой точки.
NavHost( navController = navController, startDestination = Home, popExitTransition = { scaleOut( targetScale = 0.9f, transformOrigin = TransformOrigin(pivotFractionX = 0.5f, pivotFractionY = 0.5f) ) }, popEnterTransition = { EnterTransition.None }, modifier = modifier, )
Этот код дает следующий результат:
popEnterTransition и popExitTransition управляют анимацией при извлечении из обратного стека, например при использовании жеста "Назад". Вы также можете использовать enterTransition и exitTransition, чтобы задавать анимацию для входа в composable-функции и выхода из них в целом, а не только для предпросмотра для жеста "Назад". Если вы зададите только enterTransition и exitTransition, они будут использоваться как для обычной навигации, так и для извлечения из обратного стека. Однако с помощью popEnterTransition и popExitTransition можно создавать отдельные анимации для обратной навигации.
Интеграция с переходами общих элементов
Переходы между общими элементами обеспечивают плавную визуальную связь между составными элементами с общим контентом, часто используемыми для навигации.
Чтобы использовать общие элементы с Navigation Compose, ознакомьтесь со статьей Предпросмотр для жеста "Назад" с общими элементами.
Поддержка предпросмотра для жеста "Назад" с компонентами Material Compose
Многие компоненты библиотеки Material Compose разработаны для бесперебойной работы с предпросмотром для жеста "Назад". Чтобы включить анимацию предпросмотра для жеста "Назад" в этих компонентах, добавьте в проект последнюю зависимость Material3 (androidx.compose.material3:material3-*:1.3.0 или более поздней версии).
К компонентам Material Design, поддерживающим анимации с предпросмотром для жеста "Назад", относятся:
SearchBarModalBottomSheetModalDrawerSheet/DismissibleDrawerSheetModalNavigationDrawer/DismissibleNavigationDrawer
SearchBar и ModalBottomSheet автоматически анимируются при использовании жеста "Назад". ModalNavigationDrawer, ModalDrawerSheet, DismissibleDrawerSheet и DismissibleNavigationDrawer требуют передачи drawerState в соответствующие composable-функции содержимого листа.
Как протестировать анимацию предпросмотра для жеста "Назад"
Если вы все ещё используете Android 13 или Android 14, то можете протестировать анимацию возврата на главный экран.
Чтобы протестировать эту анимацию, выполните следующие действия:
- На устройстве выберите Настройки > Система > Для разработчиков.
- Выберите Анимации с предпросмотром для жеста "Назад".
- Запустите обновленное приложение и используйте жест "Назад", чтобы посмотреть, как он работает.
На устройствах с Android 15 и более поздними версиями ОС эта функция включена по умолчанию.
Дополнительные ресурсы
- Практическая работа "Добавление анимаций с предпросмотром для жеста "Назад"
- Расширенные анимации макетов в Compose