Transition

시작 및 종료 레이아웃을 사용하여 UI에서 모션을 애니메이션으로 만듭니다.
최근 업데이트 안정화 버전 출시 후보 버전 베타 버전 알파 버전
2024년 12월 11일 1.5.1 - - 1.6.0-alpha01

종속 항목 선언

Transition의 종속 항목을 추가하려면 프로젝트에 Google Maven 저장소를 추가해야 합니다. 자세한 내용은 Google Maven 저장소를 읽어보세요.

다음과 같이 앱 또는 모듈의 build.gradle 파일에 필요한 아티팩트의 종속 항목을 추가합니다.

Groovy

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

Kotlin

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

종속 항목에 관한 자세한 내용은 빌드 종속 항목 추가를 참고하세요.

의견

제출하신 의견은 Jetpack을 개선하는 데 도움이 됩니다. 새로운 문제를 발견하거나 라이브러리 개선을 위한 아이디어가 있다면 Google에 알려 주세요. 새 문제를 제출하기 전에 이 라이브러리의 기존 문제를 살펴보시기 바랍니다. 별표 버튼을 클릭하여 기존 문제에 투표할 수 있습니다.

새로운 문제 제출하기

자세한 내용은 Issue Tracker 문서를 참고하세요.

버전 1.6

버전 1.6.0-alpha01

2024년 12월 11일

androidx.transition:transition:1.6.0-alpha01androidx.transition:transition-ktx:1.6.0-alpha01이 출시되었습니다. 버전 1.6.0-alpha01에는 이 커밋이 포함되어 있습니다.

새로운 기능

  • 이제 전환은 전환 애니메이션에 사용되는 ViewOverlays의 불연속 상위 요소를 설정합니다. 이렇게 하면 불일치하는 상위를 통해 소유자를 확인할 수 있습니다. 즉, 이제 전환 중에 ViewModels, 수명 주기 등을 올바르게 확인할 수 있습니다. (I10a16, b/340894487, b/287484338)

버그 수정

  • 이제 이 라이브러리는 유형 사용인 JSpecify nullness 주석을 사용합니다. Kotlin 개발자는 다음 컴파일러 인수를 사용하여 올바른 사용을 적용해야 합니다. -Xjspecify-annotations=strict, -Xtype-enhancement-improvements-strict-mode (I1f54e, b/326456246)
  • 새 플랫폼 API에 대한 액세스 수동 개요가 삭제되었습니다. AGP 7.3 이상 (예: R8 버전 3.3)에서 R8을 사용하거나 AGP 8.1 이상 (예: D8 버전 8.1)을 사용할 때 모든 빌드에서 API 모델링을 통해 자동으로 이루어지기 때문입니다. AGP를 사용하지 않는 클라이언트는 D8 버전 8.1 이상으로 업데이트하는 것이 좋습니다. 자세한 내용은 이 도움말을 참조하세요. (Ia60e0, b/345472586)

버전 1.5

버전 1.5.1

2024년 7월 24일

androidx.transition:transition:1.5.1androidx.transition:transition-ktx:1.5.1이 출시되었습니다. 버전 1.5.1에는 이 커밋이 포함되어 있습니다.

버그 수정

  • 전환이 시작되지 않은 경우 탐색 가능한 전환에서 animateToStart() 또는 animateToEnd() 호출이 무시되는 문제를 수정했습니다. (I44d96, b/338624457)

버전 1.5.0

2024년 5월 1일

androidx.transition:transition:1.5.0androidx.transition:transition-ktx:1.5.0이 출시되었습니다. 버전 1.5.0에는 이 커밋이 포함되어 있습니다.

1.4.0 이후 중요 변경사항

  • 전환은 API 34 이상에서 탐색을 지원합니다. TransitionManager에 새로운 API controlDelayedTransition()가 추가되었습니다. 이 API는 Transition을 탐색할 수 있는 TransitionSeekController를 반환합니다. 이 기능은 뒤로 탐색 예측 동작을 사용할 때 Fragment 1.7.0에서 전환을 자동으로 탐색하는 데 사용됩니다.
  • 전환에는 현재 전환이 포함된 전환을 반환하는 새 메서드 getRootTransition()가 있습니다. 현재 전환이 다른 전환에 포함되지 않은 경우에는 현재 전환을 반환합니다. 이는 개발자가 전체 전환이 시작되거나 종료될 때의 리스너를 보유해야 하는 경우에 유용할 수 있습니다.
  • 이제 TransitionListeners에는 개발자가 전환이 시작되는지 또는 역방향으로 종료되는지 알 수 있는 새로운 onTransitionStart()onTransitionEnd() 리스너가 있습니다. 이는 TransitionListeners가 있는 탐색 가능한 전환을 개발하는 데 중요할 수 있습니다.

버전 1.5.0-rc02

2024년 4월 17일

androidx.transition:transition:1.5.0-rc02androidx.transition:transition-ktx:1.5.0-rc02이 출시되었습니다. 버전 1.5.0-rc02에는 이 커밋이 포함되어 있습니다.

종속 항목 업데이트

  • Fragment 종속 항목을 버전 1.7.0-rc02로 업데이트하여, 다른 모든 전환이 탐색 가능한 트랜잭션에 탐색 불가능한 공유 요소가 추가되면 비정상 종료가 발생하는 버그를 수정했습니다.

버전 1.5.0-rc01

2024년 4월 3일

androidx.transition:transition:1.5.0-rc01androidx.transition:transition-ktx:1.5.0-rc01이 출시되었습니다. 버전 1.5.0-rc01에는 이 커밋이 포함되어 있습니다.

버전 1.5.0-beta01

2024년 3월 20일

androidx.transition:transition:1.5.0-beta01androidx.transition:transition-ktx:1.5.0-beta01이 출시되었습니다. 버전 1.5.0-beta01에는 이 커밋이 포함되어 있습니다.

버그 수정

  • 뒤로 탐색 예측 동작으로 수신 전환을 중단하면 진입 뷰가 소멸되어 빈 화면이 남을 수 있는 Fragments의 문제를 수정했습니다. (Id3f22, b/319531491)

버전 1.5.0-alpha06

2024년 1월 10일

androidx.transition:transition:1.5.0-alpha06androidx.transition:transition-ktx:1.5.0-alpha06이 출시되었습니다. 버전 1.5.0-alpha06에 포함된 커밋을 확인하세요.

버그 수정

  • TransitionSeekController.animateToStart()가 사용되면 추가된 TransitionListenersanimateToStart()의 지정된 Runnable 후에 onTransitionEnd()가 호출됩니다. (Ic6a55, b/307624554)

종속 항목 업데이트

  • Fragment 종속 항목이 1.7.0-alpha08로 업데이트되었습니다.

버전 1.5.0-alpha05

2023년 11월 29일

androidx.transition:transition:1.5.0-alpha05androidx.transition:transition-ktx:1.5.0-alpha05이 출시되었습니다. 버전 1.5.0-alpha05에 포함된 커밋을 확인하세요.

버그 수정

  • 공유 요소 전환을 설정하고 enter/exitTransition도 설정하지 못해 발생하는 NullPointerException를 수정했습니다. (I8472b)
  • Slide()가 있는 animateToStart()가 뷰를 시작 위치로 다시 이동하지 못하는 문제를 수정했습니다. (I698f4, b/300157785)
  • 전환에서 취소를 중단하는 재진입 문제가 수정되었습니다. (Iddcce, b/308379201)

버전 1.5.0-alpha04

2023년 10월 4일

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-alpha03

2023년 9월 20일

androidx.transition:transition:1.5.0-alpha03androidx.transition:transition-ktx:1.5.0-alpha03이 출시되었습니다. 버전 1.5.0-alpha03에 포함된 커밋을 확인하세요.

새로운 기능

  • 이제 Transition은 Fragment 1.7.0-alpha05와 함께 사용될 때 Android 14 기기에서 인앱 뒤로 탐색 예측 애니메이션을 지원합니다.

버그 수정

  • 슬라이드 전환 중단 버그가 수정되었습니다. 슬라이드 전환이 뷰를 삭제하기 위한 진입 전환을 중단하면 잘못된 위치로 이동했습니다. (I946f8, b/297427333)

버전 1.5.0-alpha02

2023년 9월 6일

androidx.transition:transition:1.5.0-alpha02androidx.transition:transition-ktx:1.5.0-alpha02이 출시되었습니다. 버전 1.5.0-alpha02에 포함된 커밋을 확인하세요.

새로운 기능

  • 이제 TransitionSeekController를 사용하면 setCurrentFragment()를 통해 진행 상황을 총 시간의 비율로 설정할 수 있습니다. (aosp/2647607)
  • 이제 TransitionSeekController에서 addOnProgressChangedListener를 호출하여 animateToStart()animateToEnd()를 사용할 때 진행 상황을 관찰할 수 있습니다. (aosp/2647607)
  • 전환 탐색에 장면을 사용할 수 있도록 TransitionManager.seekTo()를 추가했습니다. (aosp/2647607)
  • 탐색 전환에 물리 기반 애니메이션을 추가했습니다. 1차원 속도 추적기를 사용하여 setCurrentFraction() 또는 setCurrentPlayTimeMillis()로 진행 변경사항을 추적하고 이를 animateToStartanimateToEnd의 초기 속도에 사용합니다. (aosp/2647607)

버그 수정

  • AutoTransition를 탐색할 때 발생하는 플리커링 문제를 수정했습니다. (aosp/2643369)
  • 중단 시 Slide 전환이 잘못된 시작 위치로 이동하는 문제를 수정했습니다. (aosp/2733729, b/297427333)

종속 항목 업데이트

  • 이제 전환이 API 34로 컴파일됩니다.

버전 1.5.0-alpha01

2023년 5월 10일

androidx.transition:transition:1.5.0-alpha01androidx.transition:transition-ktx:1.5.0-alpha01이 출시되었습니다. 이 버전은 내부 브랜치에서 개발되었습니다.

새로운 기능

  • 전환은 API 34 이상에서 탐색을 지원합니다. 전환을 탐색할 수 있는 TransisionSeekController를 반환하는 새로운 API인 controlDelayedTransition()TransitionManager에 추가되었습니다.

API 변경사항

  • TransitionManager에는 애플리케이션이 API 34 이상에서 전환 애니메이션의 진행 상황을 제어할 수 있는 새로운 메서드 controlDelayedTransition()가 있습니다. 반환된 TransitionSeekController를 통해 개발자는 전환을 탐색할 준비가 되었는지, 애니메이션의 길이를 알 수 있으며 애니메이션의 현재 시간을 설정할 수 있습니다. isSeekable()를 재정의하여 true를 반환하는 전환만 controlDelayedTransition()에서 지원됩니다.
  • 전환에는 현재 전환이 포함된 전환을 반환하는 새 메서드 getRootTransition()가 있습니다. 현재 전환이 다른 전환에 포함되지 않은 경우에는 현재 전환을 반환합니다. 이는 개발자가 전체 전환이 시작되거나 종료될 때의 리스너를 보유해야 하는 경우에 유용할 수 있습니다.
  • 이제 TransitionListeners에는 개발자가 전환이 시작되는지 또는 역방향으로 종료되는지 알 수 있는 새로운 onTransitionStart()onTransitionEnd() 리스너가 있습니다. 이는 TransitionListeners가 있는 탐색 가능한 전환을 개발하는 데 중요할 수 있습니다.

버그 수정

  • 이제 전환이 클론될 때 TransitionListeners를 복사합니다. 즉, createAnimator() 중에 새 리스너를 추가해도 루트 전환에는 영향을 미치지 않습니다.

버전 1.4.1

버전 1.4.1

2021년 4월 21일

androidx.transition:transition:1.4.1androidx.transition:transition-ktx:1.4.1이 출시되었습니다. 버전 1.4.1에 포함된 커밋을 확인하세요.

버그 수정

  • 한 컨테이너에서 Transition을 시작하면 별도의 컨테이너에서 실행 중인 다른 전환이 의도치 않게 일시중지되어 다른 전환이 완료되지 않는 문제를 해결했습니다. (aosp/1664439, b/182845041)

버전 1.4.0

버전 1.4.0

2021년 1월 27일

androidx.transition:transition:1.4.0androidx.transition:transition-ktx:1.4.0가 출시되었습니다. 버전 1.4.0에 포함된 커밋을 확인하세요.

1.3.0 이후 주요 변경사항

  • transition-ktx 아티팩트는 AndroidX Transition 인스턴스에 리스너를 추가하기 위한 Kotlin 확장 프로그램을 도입합니다. (b/138870873)

버전 1.4.0-rc01

2020년 12월 2일

androidx.transition:transition:1.4.0-rc01androidx.transition:transition-ktx:1.4.0-rc011.4.0-beta01에서 변경된 사항 없이 출시되었습니다. 버전 1.4.0-rc01에 포함된 커밋을 확인하세요.

버전 1.4.0-beta01

2020년 7월 22일

androidx.transition:transition:1.4.0-beta01androidx.transition:transition-ktx:1.4.0-beta01 버전은 1.4.0-alpha01 이후 변경사항 없이 출시되었습니다. 버전 1.4.0-beta01에 포함된 커밋을 확인하세요.

버전 1.4.0-alpha01

2020년 6월 24일

androidx.transition:transition:1.4.0-alpha01androidx.transition:transition-ktx:1.4.0-alpha01가 출시되었습니다. 버전 1.4.0-alpha01에 포함된 커밋을 확인하세요.

새로운 기능

  • transition-ktx 아티팩트는 AndroidX Transition 인스턴스에 리스너를 추가하기 위한 Kotlin 확장 프로그램을 도입합니다. (b/138870873)

버전 1.3.1

버전 1.3.1

2020년 2월 19일

androidx.transition:transition:1.3.1가 출시되었습니다. 버전 1.3.1에 포함된 커밋을 확인하세요.

버그 수정

  • ChangeTransform을 사용할 때 일부 애니메이션 보기가 잘못 잘리는 버그 수정(b/148798452)

버전 1.3.0

버전 1.3.0

2020년 1월 22일

androidx.transition:transition:1.3.0가 출시되었습니다. 버전 1.3.0에 포함된 커밋을 확인하세요.

1.2.0 이후 중요 변경사항

  • Fragment 1.2.0의 개선사항: 전환이 완료되기 전에 Fragment의 뷰가 없어지지 않도록 하고 적절한 시점에 전환이 취소되도록 Fragment 1.2.0과의 통합이 개선되었습니다.

버전 1.3.0-rc02

2019년 12월 4일

androidx.transition:transition:1.3.0-rc02가 출시되었습니다. 버전 1.3.0-rc02에 포함된 커밋을 확인하세요.

버그 수정

  • 숨겨진 프래그먼트를 표시한 후 뷰가 INVISIBLE로 잘못 표시되는 문제가 해결되었습니다. (b/70793925)

버전 1.3.0-rc01

2019년 10월 23일

androidx.transition:transition:1.3.0-rc011.3.0-beta01 이후 변경사항 없이 출시되었습니다. 버전 1.3.0-rc01에 포함된 커밋을 확인하세요.

버전 1.3.0-beta01

2019년 10월 9일

androidx.transition:transition:1.3.0-beta01가 출시되었습니다. 버전 1.3.0-beta01에 포함된 커밋을 확인하세요.

새로운 기능

  • 전환이 완료되기 전에 Fragment의 뷰가 없어지지 않도록 하고 적절한 시점에 전환이 취소되도록 Fragment 1.2.0-beta01과의 통합이 개선되었습니다. (aosp/1119841)

버전 1.2.0

버전 1.2.0

2019년 10월 9일

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

2019년 9월 5일

androidx.transition:transition:1.2.0-rc01 버전은 1.2.0-beta01 이후 변경사항 없이 출시되었습니다. 이 버전에 포함된 커밋은 여기에서 확인할 수 있습니다.

버전 1.2.0-beta01

2019년 7월 2일

androidx.transition:transition:1.2.0-beta01이 출시되었습니다. 이 버전에 포함된 커밋은 여기에서 확인할 수 있습니다.

새로운 기능

  • 29를 targetSdkVersion으로 지정한다면 이 버전을 사용해야 합니다. 그렇지 않으면 일부 전환이 제대로 작동하지 않습니다. 리플렉션 호출 대신 이 버전은 API 수준 29에 추가된 새로운 공개 메서드를 사용합니다. 이는 비 SDK 인터페이스 작업에 관한 제한사항의 일부입니다.

버전 1.2.0-alpha01

2019년 5월 7일

androidx.transition:transition:1.2.0-alpha01이 출시되었습니다.

새로운 기능

  • Q를 targetSdkVersion으로 지정한다면 이 버전을 사용해야 합니다. 그렇지 않으면 일부 전환이 제대로 작동하지 않습니다. 리플렉션 호출 대신 이 버전은 Q에 추가된 새로운 공개 메서드를 사용합니다. 이는 비 SDK 인터페이스 작업에 관한 제한사항의 일부입니다.

버전 1.1.0

버전 1.1.0

2019년 7월 2일

androidx.transition:transition:1.1.0 버전은 1.1.0-rc02에서 변경사항 없이 출시되었습니다. 이 버전에 포함된 커밋은 여기에서 확인할 수 있습니다.

버전 1.1.0-rc02

2019년 6월 5일

androidx.transition:transition:1.1.0-rc02가 출시되었습니다. 이 버전에 포함된 커밋은 여기에서 확인할 수 있습니다.

버그 수정

  • TransitionManager.endTransitions()가 종속 전환과 올바르게 작동하도록 수정했습니다. (aosp/946400)

버전 1.1.0-rc01

2019년 5월 7일

androidx.transition:transition:1.1.0-rc01이 출시되었습니다. 이 버전에 포함된 커밋은 여기에서 확인할 수 있습니다.

버전 1.1.0-beta01

2019년 4월 3일

androidx.transition:transition:1.1.0-beta01가 출시되었습니다. 이 버전에 포함된 커밋은 여기에서 확인할 수 있습니다.

버그 수정

  • API 수준 17 이하에서 발생하는 VisibilityViewGroupOverlay 캐싱 버그를 수정했습니다. (aosp/937350)

버전 1.1.0-alpha02

2019년 3월 13일

androidx.transition:transition:1.1.0-alpha02이 출시되었습니다. 이 버전에 포함된 커밋의 전체 목록은 여기에서 확인할 수 있습니다.

API 변경사항

  • Scene.getCurrentScene()의 메서드 매개변수 유형을 View에서 ViewGroup으로 변경했습니다.

버그 수정

  • setStartDelay()를 통해 추가 지연이 제공될 때 SidePropagation이 작동하지 않습니다. (b/119839526)
  • API 21 이전에서 ChangeImageTransform이 중단될 때 잘못된 행렬을 적용합니다. (b/123226255)
  • API 21 이전에서 ChangeTransform이 때에 따라 부정확하게 작동합니다. (b/125777978)

버전 1.1.0-alpha01

2018년 12월 3일

API 변경사항

  • aosp/807055: Scene.getCurrentScene(View) 메서드가 공개되었습니다. 이 메서드를 통해 현재 장면에 따라 맞춤 조건부 로직을 작성할 수 있습니다.

버그 수정

  • TransitionManager를 사용하여 RecyclerView의 항목을 접거나 펼칠 때 발생하는 비정상 종료 문제를 수정했습니다. (b/37129527)
  • 두 개의 공개 상태 전환이 적용될 때 발생하는 잘못된 애니메이션을 수정했습니다(b/62629600).
  • TransitionSet 하위 요소의 지속 시간이나 보간기와 같은 값을 재정의할 수 있습니다(b/64644617).
  • 기타 여러 사소한 버그를 수정했습니다.