Настроить интеллектуальную обратную связь

Анимация «Назад» и системная анимация включены по умолчанию. Если ваше приложение перехватывает событие «Назад», и вы еще не перешли на анимацию «Назад», обновите приложение, чтобы использовать поддерживаемые API навигации «Назад».

Анимация возврата на главный экран с функцией прогнозирования.
Анимация перекрестной активности с функцией прогнозирования.
Анимация, позволяющая прогнозировать выполнение различных задач.

Включить анимацию системы по умолчанию

Системные анимации возврата на главный экран, а также анимации для разных активностей и задач доступны на устройствах с Android 15 и более поздних версий для приложений, которые перешли на поддерживаемые API для возврата.

  • Вернуться на главный экран : возвращает пользователя на главный экран.
  • Межфункциональное взаимодействие : Переходы между различными видами деятельности внутри приложения.
  • Межзадачность : Переходы между задачами .

Эти анимации включены по умолчанию в Android 15 и выше. На устройствах под управлением Android 13 или 14 пользователи могут включить их через параметры разработчика .

Чтобы включить системную анимацию, обновите зависимость AndroidX Activity до версии 1.6.0 или выше.

Включите функцию предиктивного возврата при создании навигации.

Чтобы использовать функцию предиктивного перехода назад в Navigation Compose, убедитесь, что вы используете библиотеку navigation-compose версии 2.8.0 или выше.

Функция Navigation Compose автоматически плавно переключается между экранами при свайпе назад:

Рисунок 2. Стандартная анимация плавного перехода в приложении SociaLite.

При навигации вы можете создавать пользовательские переходы с помощью 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,
)

Этот код выдает следующий результат:

Рисунок 3. Пользовательская анимация в приложении SociaLite.

popEnterTransition и popExitTransition специально управляют анимацией при удалении элемента из стека «Назад», например, с помощью жеста «Назад». Вы также можете использовать enterTransition и exitTransition для определения анимаций входа и выхода из составных элементов в целом, а не только для предиктивного возврата. Если вы установите только enterTransition и exitTransition , они будут использоваться как для обычной навигации, так и для удаления элемента из стека «Назад». Однако использование popEnterTransition и popExitTransition позволяет создавать отдельные анимации для навигации назад.

Интеграция с переходами между общими элементами.

Переходы между общими элементами обеспечивают плавную визуальную связь между составными элементами с общим содержимым, часто используемую для навигации.

Рисунок 4. Переход между общими элементами с функцией предиктивного возврата в меню «Навигация».

Чтобы использовать общие элементы с функцией Navigation Compose, см. раздел «Предиктивная навигация назад с использованием общих элементов» .

Поддержка предиктивной навигации с помощью компонентов Material Compose

Многие компоненты библиотеки Material Compose разработаны для бесперебойной работы с предиктивными жестами возврата. Чтобы включить анимацию возврата в этих компонентах, добавьте в свой проект последнюю версию зависимости Material3 ( androidx.compose.material3:material3-*:1.3.0 или выше).

Компоненты Material Design, поддерживающие анимацию возврата, включают в себя:

SearchBar и ModalBottomSheet автоматически анимируются при нажатии на кнопку "Назад". ModalNavigationDrawer , ModalDrawerSheet , DismissibleDrawerSheet и DismissibleNavigationDrawer требуют передачи параметра drawerState соответствующим компонентам содержимого листа.

Протестируйте анимацию предиктивного жеста «назад».

Если вы все еще используете Android 13 или Android 14, вы можете протестировать анимацию возврата на главный экран.

Чтобы протестировать эту анимацию, выполните следующие шаги:

  1. На вашем устройстве перейдите в Настройки > Система > Параметры разработчика .
  2. Выберите «Предиктивная анимация спины» .
  3. Запустите обновлённое приложение и используйте жест «назад», чтобы увидеть его в действии.

В Android 15 и более поздних версиях эта функция включена по умолчанию.

Дополнительные ресурсы