Переход

Анимируйте движение в пользовательском интерфейсе с помощью начального и конечного макетов.
Последнее обновление Стабильный выпуск Кандидат на выпуск Бета-версия Альфа-релиз
11 декабря 2024 г. 1.5.1 - - 1.6.0-альфа01

Объявление зависимостей

Чтобы добавить зависимость от Transition, вам необходимо добавить в свой проект репозиторий Google Maven. Для получения дополнительной информации прочтите репозиторий Google Maven .

Добавьте зависимости для нужных вам артефактов в файл build.gradle для вашего приложения или модуля:

классный

dependencies {
    // Java language implementation
    implementation "androidx.transition:transition:1.5.1"
    // Kotlin
    implementation "androidx.transition:transition-ktx:1.5.1"
}

Котлин

dependencies {
    // Java language implementation
    implementation("androidx.transition:transition:1.5.1")
    // Kotlin
    implementation("androidx.transition:transition-ktx:1.5.1")
}

Дополнительные сведения о зависимостях см. в разделе Добавление зависимостей сборки .

Обратная связь

Ваши отзывы помогают сделать Jetpack лучше. Дайте нам знать, если вы обнаружите новые проблемы или у вас есть идеи по улучшению этой библиотеки. Пожалуйста, ознакомьтесь с существующими проблемами в этой библиотеке, прежде чем создавать новую. Вы можете добавить свой голос к существующей проблеме, нажав кнопку со звездочкой.

Создать новую задачу

Дополнительную информацию см . в документации по системе отслеживания проблем .

Версия 1.6

Версия 1.6.0-альфа01

11 декабря 2024 г.

Выпущены androidx.transition:transition:1.6.0-alpha01 и androidx.transition:transition-ktx:1.6.0-alpha01 . Версия 1.6.0-alpha01 содержит эти коммиты .

Новые возможности

  • Переход теперь устанавливает несвязный родительский элемент для ViewOverlays используемого для анимации его переходов. Это позволяет разрешать владельцев через непересекающийся родительский элемент, что означает, что теперь вы можете правильно разрешать ViewModels , жизненные циклы и т. д. во время перехода. ( I10a16 , б/340894487 , б/287484338 )

Исправления ошибок

  • Эта библиотека теперь использует аннотации NULL NULL JSpecify , которые являются типизированными. Разработчики Kotlin должны использовать следующие аргументы компилятора для обеспечения правильного использования: -Xjspecify-annotations=strict, -Xtype-enhancement-improvements-strict-mode ( I1f54e , b/326456246 )
  • Убрано ручное определение доступа к API новой платформы, поскольку это происходит автоматически посредством моделирования API при использовании R8 с AGP 7.3 или новее (например, R8 версии 3.3) и для всех сборок при использовании AGP 8.1 или новее (например, D8 версии 8.1). Клиентам, не использующим AGP, рекомендуется выполнить обновление до D8 версии 8.1 или более поздней. Более подробную информацию можно найти в этой статье . ( Ia60e0 , б/345472586 )

Версия 1.5

Версия 1.5.1

24 июля 2024 г.

Выпущены androidx.transition:transition:1.5.1 и androidx.transition:transition-ktx:1.5.1 . Версия 1.5.1 содержит эти коммиты .

Исправления ошибок

  • Исправлена ​​проблема, из-за которой вызовы animateToStart() или animateToEnd() при переходе с возможностью поиска игнорировались, если переход не был запущен. ( I44d96 , б/338624457 )

Версия 1.5.0

1 мая 2024 г.

Выпущены androidx.transition:transition:1.5.0 и androidx.transition:transition-ktx:1.5.0 . Версия 1.5.0 содержит эти коммиты .

Важные изменения с версии 1.4.0

  • Переходы поддерживают поиск по API 34 и выше. В TransitionManager был добавлен новый API — controlDelayedTransition() , который возвращает TransitionSeekController , позволяющий искать Transition . Эта функция используется фрагментом 1.7.0 для автоматического поиска переходов при использовании прогнозируемого жеста назад.
  • У переходов есть новый метод getRootTransition() , который возвращает переход, содержащий текущий переход, или текущий переход, если он не содержится ни в одном другом переходе. Это может быть полезно, если разработчику необходимо иметь прослушиватели, когда начнется или закончится весь переход.
  • TransitionListeners теперь есть новые прослушиватели onTransitionStart() и onTransitionEnd() , которые позволяют разработчику узнать, начинается или заканчивается переход в обратном направлении или нет. Это может быть важно для разработки переходов с возможностью поиска, которые имеют TransitionListeners .

Версия 1.5.0-rc02

17 апреля 2024 г.

Выпущены androidx.transition:transition:1.5.0-rc02 и androidx.transition:transition-ktx:1.5.0-rc02 . Версия 1.5.0-rc02 содержит эти коммиты .

Обновление зависимостей

  • Обновлена ​​зависимость фрагмента до версии 1.7.0-rc02 , в которой исправлена ​​ошибка, из-за которой если в транзакцию был добавлен недоступный для поиска общий элемент, в котором все остальные переходы были доступны для поиска, происходил сбой.

Версия 1.5.0-rc01

3 апреля 2024 г.

Выпущены androidx.transition:transition:1.5.0-rc01 и androidx.transition:transition-ktx:1.5.0-rc01 . Версия 1.5.0-rc01 содержит эти коммиты .

Версия 1.5.0-бета01

20 марта 2024 г.

Выпущены androidx.transition:transition:1.5.0-beta01 и androidx.transition:transition-ktx:1.5.0-beta01 . Версия 1.5.0-beta01 содержит эти коммиты .

Исправления ошибок

  • Исправлена ​​проблема во фрагментах, из-за которой прерывание входящих переходов с помощью интеллектуального жеста назад приводило к уничтожению входящего представления, что потенциально могло оставить пустой экран. ( Id3f22 , б/319531491 )

Версия 1.5.0-альфа06

10 января 2024 г.

Выпущены androidx.transition:transition:1.5.0-alpha06 и androidx.transition:transition-ktx:1.5.0-alpha06 . Версия 1.5.0-alpha06 содержит эти коммиты.

Исправления ошибок

  • Когда используется TransitionSeekController.animateToStart() , добавленные TransitionListeners теперь будут вызывать onTransitionEnd() после того, как animateToStart() дал Runnable . ( Ic6a55 , б/307624554 )

Обновление зависимостей

  • Зависимость фрагмента обновлена ​​до 1.7.0-alpha08 .

Версия 1.5.0-альфа05

29 ноября 2023 г.

Выпущены androidx.transition:transition:1.5.0-alpha05 и androidx.transition:transition-ktx:1.5.0-alpha05 . Версия 1.5.0-alpha05 содержит эти коммиты.

Исправления ошибок

  • Исправлено исключение NullPointerException , вызванное установкой перехода общего элемента и невозможностью установить enter/exitTransition . ( I8472b )
  • Исправлена ​​проблема, из-за которой animateToStart() с Slide() не удалось вернуть вид обратно в исходное положение ( I698f4 , b/300157785 ).
  • Исправлена ​​проблема повторного входа в переходе, из-за которой нарушалась отмена. ( Иддцче , б/308379201 )

Версия 1.5.0-альфа04

4 октября 2023 г.

Выпущены androidx.transition:transition:1.5.0-alpha04 и `androidx.transition:transition-ktx:1.5.0-alpha04. Версия 1.5.0-alpha04 содержит эти коммиты.

Изменения API

  • Критическое изменение . Метод animateToStart() теперь принимает Runnable , который следует использовать для возврата переходных представлений в исходное состояние.

Версия 1.5.0-альфа03

20 сентября 2023 г.

Выпущены androidx.transition:transition:1.5.0-alpha03 и androidx.transition:transition-ktx:1.5.0-alpha03 . Версия 1.5.0-alpha03 содержит эти коммиты.

Новые возможности

  • Теперь Transition обеспечивает поддержку анимации Predictive Back в приложении на устройствах Android 14 при использовании с Fragment 1.7.0-alpha05 .

Исправления ошибок

  • Исправлена ​​ошибка прерывания слайд-перехода. Когда переход слайдов прерывал входящий переход, чтобы удалить вид, он переходил в неправильное положение. ( I946f8 , б/297427333 )

Версия 1.5.0-альфа02

6 сентября 2023 г.

Выпущены androidx.transition:transition:1.5.0-alpha02 и androidx.transition:transition-ktx:1.5.0-alpha02 . Версия 1.5.0-alpha02 содержит эти коммиты.

Новые возможности

  • TransitionSeekController теперь позволяет вам устанавливать прогресс как часть общей продолжительности с помощью setCurrentFragment() . ( аосп/2647607 )
  • TransitionSeekController теперь позволяет наблюдать за прогрессом при использовании animateToStart() и animateToEnd() путем вызова addOnProgressChangedListener . ( аосп/2647607 )
  • Добавлен TransitionManager.seekTo() позволяющий использовать сцены для поиска переходов. ( аосп/2647607 )
  • Добавлена ​​анимация на основе физики для поиска переходов. Он использует одномерный трекер скорости для отслеживания изменения прогресса с помощью setCurrentFraction() или setCurrentPlayTimeMillis() и использует его для начальной скорости animateToStart и animateToEnd . ( аосп/2647607 )

Исправления ошибок

  • Исправлено мерцание при поиске AutoTransition . ( аосп/2643369 )
  • Исправлена ​​ошибка, из-за которой переход Slide переходил в неправильную начальную позицию при прерывании. ( аосп/2733729 , б/297427333 )

Обновление зависимостей

  • Переход теперь компилируется с API 34.

Версия 1.5.0-альфа01

10 мая 2023 г.

Выпущены androidx.transition:transition:1.5.0-alpha01 и androidx.transition:transition-ktx:1.5.0-alpha01 . Эта версия разработана во внутренней ветке.

Новые возможности

  • Переходы поддерживают поиск по API 34 и выше. В TransitionManager был добавлен новый API — controlDelayedTransition() , который возвращает TransisionSeekController , позволяющий искать переход.

Изменения API

  • TransitionManager появился новый метод controlDelayedTransition() , который позволяет приложениям контролировать ход анимации перехода в API 34+. Возвращенный TransitionSeekController сообщает разработчику, когда переход готов к поиску, продолжительность анимации и позволяет установить текущее время анимации. controlDelayedTransition() поддерживает только переходы, которые переопределяют isSeekable() для возврата true.
  • У переходов есть новый метод getRootTransition() , который возвращает переход, содержащий текущий переход, или текущий переход, если он не содержится ни в одном другом переходе. Это может быть полезно, если разработчику необходимо иметь прослушиватели, когда начнется или закончится весь переход.
  • TransitionListeners теперь есть новые прослушиватели onTransitionStart() и onTransitionEnd() , которые позволяют разработчику узнать, начинается или заканчивается переход в обратном направлении или нет. Это может быть важно для разработки переходов с возможностью поиска, которые имеют TransitionListeners .

Исправления ошибок

  • Переходы теперь копируют свои TransitionListeners при клонировании. Это означает, что добавление новых прослушивателей во время createAnimator() не повлияет на корневой переход.

Версия 1.4.1

Версия 1.4.1

21 апреля 2021 г.

Выпущены androidx.transition:transition:1.4.1 и androidx.transition:transition-ktx:1.4.1 . Версия 1.4.1 содержит эти коммиты.

Исправления ошибок

  • Исправлена ​​проблема, из-за которой запуск Transition в одном контейнере непреднамеренно приостанавливал другие выполняемые переходы в отдельных контейнерах, в результате чего эти другие переходы никогда не завершались. ( аосп/1664439 , б/182845041 )

Версия 1.4.0

Версия 1.4.0

27 января 2021 г.

Выпущены androidx.transition:transition:1.4.0 и androidx.transition:transition-ktx:1.4.0 . Версия 1.4.0 содержит эти коммиты.

Основные изменения с версии 1.3.0

  • Артефакт transition-ktx представляет расширения Kotlin для добавления прослушивателей к экземплярам AndroidX Transition . ( б / 138870873 )

Версия 1.4.0-rc01

2 декабря 2020 г.

androidx.transition:transition:1.4.0-rc01 и androidx.transition:transition-ktx:1.4.0-rc01 выпущены без изменений по сравнению с 1.4.0-beta01 . Версия 1.4.0-rc01 содержит эти коммиты.

Версия 1.4.0-бета01

22 июля 2020 г.

androidx.transition:transition:1.4.0-beta01 и androidx.transition:transition-ktx:1.4.0-beta01 выпущены без изменений с версии 1.4.0-alpha01 . Версия 1.4.0-beta01 содержит эти коммиты.

Версия 1.4.0-альфа01

24 июня 2020 г.

Выпущены androidx.transition:transition:1.4.0-alpha01 и androidx.transition:transition-ktx:1.4.0-alpha01 . Версия 1.4.0-alpha01 содержит эти коммиты.

Новые возможности

  • Артефакт transition-ktx представляет расширения Kotlin для добавления прослушивателей к экземплярам AndroidX Transition . ( б / 138870873 )

Версия 1.3.1

Версия 1.3.1

19 февраля 2020 г.

Выпущен androidx.transition:transition:1.3.1 . Версия 1.3.1 содержит эти коммиты.

Исправления ошибок

  • Исправлена ​​ошибка, из-за которой некоторые анимированные представления были неправильно обрезаны при использовании ChangeTransform ( b/148798452 ).

Версия 1.3.0

Версия 1.3.0

22 января 2020 г.

Выпущен androidx.transition:transition:1.3.0 . Версия 1.3.0 содержит эти коммиты .

Важные изменения с версии 1.2.0

  • Улучшения для фрагмента 1.2.0 : улучшена интеграция с фрагментом 1.2.0 , чтобы гарантировать, что представление фрагмента не будет уничтожено до завершения перехода и что переходы будут отменены в соответствующее время.

Версия 1.3.0-rc02

4 декабря 2019 г.

Выпущен androidx.transition:transition:1.3.0-rc02 . Версия 1.3.0-rc02 содержит эти коммиты .

Исправления ошибок

  • Исправлена ​​проблема, из-за которой виды неправильно помечались INVISIBLE после открытия скрытого фрагмента. ( б / 70793925 )

Версия 1.3.0-rc01

23 октября 2019 г.

androidx.transition:transition:1.3.0-rc01 выпущен без изменений с 1.3.0-beta01 . Версия 1.3.0-rc01 содержит эти коммиты .

Версия 1.3.0-бета01

9 октября 2019 г.

Выпущен androidx.transition:transition:1.3.0-beta01 . Версия 1.3.0-beta01 содержит эти коммиты .

Новые возможности

  • Улучшена интеграция с фрагментом 1.2.0-beta01 чтобы гарантировать, что представление фрагмента не будет уничтожено до завершения перехода и что переходы будут отменены в соответствующее время. ( аосп/1119841 )

Версия 1.2.0

Версия 1.2.0

9 октября 2019 г.

androidx.transition:transition:1.2.0 выпущен без изменений по сравнению с версией 1.2.0-rc01. Версия 1.2.0 содержит эти коммиты .

Важные изменения по сравнению с версией 1.1.0

Эту версию следует использовать, если вы ориентируетесь на уровень API 29. В противном случае некоторые переходы не будут работать должным образом. Вместо вызовов отражения в этой версии используются новые общедоступные методы, добавленные в уровне API 29. Это часть наших ограничений на интерфейсы, не относящиеся к SDK.

Версия 1.2.0-rc01

5 сентября 2019 г.

androidx.transition:transition:1.2.0-rc01 выпущен без изменений с версии 1.2.0-beta01 . Коммиты, включенные в эту версию, можно найти здесь .

Версия 1.2.0-бета01

2 июля 2019 г.

Выпущен androidx.transition:transition:1.2.0-beta01 . Коммиты, включенные в эту версию, можно найти здесь .

Новые возможности

  • Эту версию следует использовать, если вы указываете 29 в качестве targetSdkVersion . В противном случае некоторые переходы не будут работать должным образом. Вместо вызовов отражения в этой версии используются новые общедоступные методы, добавленные в уровне API 29. Это часть наших ограничений на интерфейсы, не относящиеся к SDK.

Версия 1.2.0-альфа01

7 мая 2019 г.

Выпущен androidx.transition:transition:1.2.0-alpha01 .

Новые возможности

  • Эту версию следует использовать, если вы указываете Q в качестве targetSdkVersion . В противном случае некоторые переходы не будут работать должным образом. Вместо вызовов отражения в этой версии используются новые общедоступные методы, добавленные в Q. Это часть наших ограничений на интерфейсы, не относящиеся к SDK.

Версия 1.1.0

Версия 1.1.0

2 июля 2019 г.

androidx.transition:transition:1.1.0 выпущен без изменений по сравнению с 1.1.0-rc02 . Коммиты, включенные в эту версию, можно найти здесь .

Версия 1.1.0-rc02

5 июня 2019 г.

androidx.transition:transition:1.1.0-rc02 выпущен. Коммиты, включенные в эту версию, можно найти здесь .

Исправления ошибок

  • Исправлена ​​ошибка, из-за которой TransitionManager.endTransitions() корректно работал с зависимыми переходами. ( аосп/946400 )

Версия 1.1.0-rc01

7 мая 2019 г.

androidx.transition:transition:1.1.0-rc01 выпущен. Коммиты, включенные в эту версию, можно найти здесь .

Версия 1.1.0-бета01

3 апреля 2019 г.

Выпущен androidx.transition:transition:1.1.0-beta01 . Коммиты, включенные в эту версию, можно найти здесь .

Исправления ошибок

  • Исправлена ​​ошибка кэширования ViewGroupOverlay в Visibility , возникающая на уровне API 17 и ниже ( aosp/937350 ).

Версия 1.1.0-альфа02

13 марта 2019 г.

Выпущен androidx.transition:transition:1.1.0-alpha02 . Полный список коммитов, включённых в эту версию, можно найти здесь .

Изменения API

  • Тип параметра метода Scene.getCurrentScene() был изменен с View на ViewGroup .

Исправления ошибок

  • SidePropagation не работает, если дополнительная задержка предоставляется через setStartDelay() ( b/119839526 ).
  • ChangeImageTransform применяет неправильную матрицу при прерывании до API 21 ( b/123226255 ).
  • ChangeTransform в некоторых случаях работает некорректно до API 21 ( b/125777978 ).

Версия 1.1.0-альфа01

3 декабря 2018 г.

Изменения API

  • aosp/807055 : метод Scene.getCurrentScene(View) стал общедоступным. Это позволяет вам писать собственную условную логику в зависимости от текущей сцены.

Исправления ошибок

  • Исправлен сбой при использовании TransitionManager для свертывания/развертывания элемента в RecyclerView ( b/37129527 ).
  • Исправлена ​​некорректная анимация при применении двух переходов видимости ( b/62629600 ).
  • Разрешить переопределение значений, таких как продолжительность и интерполятор, для дочерних элементов TransitionSet ( b/64644617 ).
  • Исправлено множество других мелких ошибок.