Transição

Anime o movimento na IU com layouts iniciais e finais.
Atualização mais recente Versão estável Versão candidata a lançamento Versão Beta Versão Alfa
24 de julho de 2024 1.5.1 - - -

Como declarar dependências

Para adicionar uma dependência a Transition, é preciso adicionar o repositório Maven do Google ao seu projeto. Leia Repositório Maven do Google para ver mais informações.

Adicione as dependências dos artefatos necessários ao arquivo build.gradle do seu app ou módulo:

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")
}

Para mais informações sobre dependências, consulte Adicionar dependências de build.

Feedback

Seu feedback ajuda a melhorar o Jetpack. Avise se você descobrir novos problemas ou tiver ideias para melhorar esta biblioteca. Consulte os problemas conhecidos nesta biblioteca antes de criar um novo. Adicione seu voto a um problema clicando no botão de estrela.

Criar novo problema

Consulte a documentação do Issue Tracker para saber mais.

Versão 1.5

Versão 1.5.1

24 de julho de 2024

Lançamento de androidx.transition:transition:1.5.1 e androidx.transition:transition-ktx:1.5.1. A versão 1.5.1 contém estas confirmações.

Correções de bugs

  • Correção de um problema em que as chamadas para animateToStart() ou animateToEnd() em uma transição pesquisável eram ignoradas se a transição não fosse iniciada (I44d96, b/338624457).

Versão 1.5.0

1o de maio de 2024

Lançamento de androidx.transition:transition:1.5.0 e androidx.transition:transition-ktx:1.5.0. A versão 1.5.0 contém estas confirmações.

Mudanças importantes desde a versão 1.4.0

  • As transições oferecem suporte à busca na API 34 e mais recentes. Uma nova API foi adicionada a TransitionManager, controlDelayedTransition(), que retorna um TransitionSeekController que permite buscar o Transition. Essa funcionalidade é usada pelo Fragment 1.7.0 para procurar automaticamente transições ao usar o gesto de volta preditiva.
  • As transições têm um novo método, getRootTransition(), que retorna a transição que contém a transição atual ou a transição atual se ela não estiver contida em nenhuma outra transição. Isso pode ser útil se o desenvolvedor precisar ter listeners para quando toda a transição começar ou terminar.
  • TransitionListeners agora tem novos listeners onTransitionStart() e onTransitionEnd() que permitem ao desenvolvedor saber se a transição começa ou termina em ordem inversa ou não. Isso pode ser importante para desenvolver transições pesquisáveis que tenham TransitionListeners.

Versão 1.5.0-rc02

17 de abril de 2024

Lançamento de androidx.transition:transition:1.5.0-rc02 e androidx.transition:transition-ktx:1.5.0-rc02. A versão 1.5.0-rc02 contém estas confirmações.

Atualização de dependências

  • A dependência do fragmento foi atualizada para a versão 1.7.0-rc02, que corrigiu um bug em que, se um elemento compartilhado não pesquisável fosse adicionado a uma transação em que todas as outras transições fossem pesquisáveis, haveria uma falha.

Versão 1.5.0-rc01

3 de abril de 2024

Lançamento de androidx.transition:transition:1.5.0-rc01 e androidx.transition:transition-ktx:1.5.0-rc01. A versão 1.5.0-rc01 contém estas confirmações.

Versão 1.5.0-beta01

20 de março de 2024

Lançamento de androidx.transition:transition:1.5.0-beta01 e androidx.transition:transition-ktx:1.5.0-beta01. A versão 1.5.0-beta01 contém estas confirmações.

Correções de bugs

  • Correção de um problema em fragmentos em que a interrupção de transições de entrada com um gesto de volta preditiva destruía a visualização de entrada, deixando uma tela em branco (Id3f22, b/319531491).

Versão 1.5.0-alpha06

10 de janeiro de 2024

Lançamento de androidx.transition:transition:1.5.0-alpha06 e androidx.transition:transition-ktx:1.5.0-alpha06. A versão 1.5.0-alpha06 contém estas confirmações.

Correções de bugs

  • Quando TransitionSeekController.animateToStart() é usado, o TransitionListeners adicionado agora terá onTransitionEnd() chamado após o Runnable fornecido pelo animateToStart(). (Ic6a55, b/307624554).

Atualização de dependências

  • A dependência de Fragment foi atualizada para 1.7.0-alpha08.

Versão 1.5.0-alpha05

29 de novembro de 2023

Lançamento de androidx.transition:transition:1.5.0-alpha05 e androidx.transition:transition-ktx:1.5.0-alpha05. A versão 1.5.0-alpha05 contém estas confirmações.

Correções de bugs

  • Correção de um NullPointerException causado por definir uma transição de elemento compartilhado e não definir uma enter/exitTransition (I8472b).
  • Correção de um problema em que animateToStart() com Slide() não conseguia mover a visualização de volta para a posição inicial (I698f4, b/300157785).
  • Correção do problema de reentrada na transição que quebrou o cancelamento (Iddcce, b/308379201).

Versão 1.5.0-alpha04

4 de outubro de 2023

Lançamento de androidx.transition:transition:1.5.0-alpha04 e androidx.transition:transition-ktx:1.5.0-alpha04. A versão 1.5.0-alpha04 contém estas confirmações.

Mudanças na API

  • Mudança interruptiva: o método animateToStart() agora usa um Runnable que precisa ser usado para retornar as visualizações de transição ao estado original.

Versão 1.5.0-alpha03

20 de setembro de 2023

Lançamento de androidx.transition:transition:1.5.0-alpha03 e androidx.transition:transition-ktx:1.5.0-alpha03. A versão 1.5.0-alpha03 contém estas confirmações.

Novos recursos

  • A transição agora oferece suporte a animações de volta preditiva no app em dispositivos Android 14 quando usada com Fragment 1.7.0-alpha05.

Correções de bugs

  • Correção de bug de interrupção da transição de slides. Quando uma transição de slides interrompeva uma transição de entrada para remover uma visualização, ela pulava para uma posição incorreta. (I946f8, b/297427333).

Versão 1.5.0-alpha02

6 de setembro de 2023

Lançamento de androidx.transition:transition:1.5.0-alpha02 e androidx.transition:transition-ktx:1.5.0-alpha02. A versão 1.5.0-alpha02 contém estas confirmações.

Novos recursos

  • O TransitionSeekController agora permite que você defina o progresso como uma fração da duração total usando setCurrentFragment(). (aosp/2647607).
  • A TransitionSeekController agora permite observar o progresso ao usar animateToStart() e animateToEnd() chamando addOnProgressChangedListener. (aosp/2647607).
  • TransitionManager.seekTo() foi adicionado para permitir o uso de cenas para buscar transições. (aosp/2647607).
  • Animações baseadas em física foram adicionadas às transições de busca. Ele usa um rastreador de velocidade 1D para acompanhar a mudança de progresso com setCurrentFraction() ou setCurrentPlayTimeMillis() e o usa para a velocidade inicial de animateToStart e animateToEnd. (osp/2647607, link em inglês).

Correções de bugs

  • Correção de um tremor ao buscar uma AutoTransition (osp/2643369, link em inglês).
  • Correção de um problema em que uma transição Slide saltava para a posição inicial errada quando era interrompida (aosp/2733729, b/297427333).

Atualização de dependências

  • A transição agora é compilada com a API 34.

Versão 1.5.0-alpha01

10 de maio de 2023

Lançamento de androidx.transition:transition:1.5.0-alpha01 e androidx.transition:transition-ktx:1.5.0-alpha01. Esta versão foi desenvolvida em uma ramificação interna.

Novos recursos

  • As transições oferecem suporte à busca na API 34 e mais recentes. Uma nova API foi adicionada ao TransitionManager, controlDelayedTransition(), que retorna um TransisionSeekController que permite buscar a transição.

Mudanças na API

  • O TransitionManager tem um novo método, controlDelayedTransition(), que permite que os aplicativos controlem o progresso das animações de transição na API 34 e mais recentes. O TransitionSeekController retornado informa ao desenvolvedor quando a transição está pronta para busca, a duração da animação e permite definir o tempo atual da animação. Somente as transições que substituem isSeekable() para retornar "true" são compatíveis com controlDelayedTransition().
  • As transições têm um novo método, getRootTransition(), que retorna a transição que contém a transição atual ou a transição atual se ela não estiver contida em nenhuma outra transição. Isso pode ser útil se o desenvolvedor precisar ter listeners para quando toda a transição começar ou terminar.
  • Agora, TransitionListeners tem novos listeners onTransitionStart() e onTransitionEnd() que permitem que o desenvolvedor saiba se a transição está começando ou terminando, invertida ou não. Isso pode ser importante para desenvolver transições pesquisáveis que tenham TransitionListeners.

Correções de bugs

  • Agora, as transições copiam o TransitionListeners quando são clonadas. Isso significa que adicionar novos listeners durante createAnimator() não afeta a transição raiz.

Versão 1.4.1

Versão 1.4.1

21 de abril de 2021

Lançamento de androidx.transition:transition:1.4.1 e androidx.transition:transition-ktx:1.4.1. A versão 1.4.1 contém estas confirmações.

Correções de bugs

  • Correção de um problema em que iniciar uma Transition em um contêiner pausaria acidentalmente outras transições em execução em contêineres separados, o que fazia com que essas outras transições nunca fossem concluídas (aosp/1664439, b/182845041).

Versão 1.4.0

Versão 1.4.0

27 de janeiro de 2021

Lançamento de androidx.transition:transition:1.4.0 e androidx.transition:transition-ktx:1.4.0. A versão 1.4.0 contém estas confirmações.

Principais mudanças desde a versão 1.3.0

  • O artefato transition-ktx introduz extensões Kotlin para adicionar listeners às instâncias Transition do AndroidX (b/138870873).

Versão 1.4.0-rc01

2 de dezembro de 2020

Lançamento de androidx.transition:transition:1.4.0-rc01 e androidx.transition:transition-ktx:1.4.0-rc01, sem mudanças desde 1.4.0-beta01. A versão 1.4.0-rc01 contém estas confirmações.

Versão 1.4.0-beta01

22 de julho de 2020

Lançamento de androidx.transition:transition:1.4.0-beta01 e androidx.transition:transition-ktx:1.4.0-beta01, sem mudanças desde a 1.4.0-alpha01. A versão 1.4.0-beta01 contém essas confirmações.

Versão 1.4.0-alpha01

24 de junho de 2020

Lançamento de androidx.transition:transition:1.4.0-alpha01 e androidx.transition:transition-ktx:1.4.0-alpha01. A versão 1.4.0-alpha01 contém essas confirmações (link em inglês).

Novos recursos

  • O artefato transition-ktx introduz extensões Kotlin para adicionar listeners às instâncias Transition do AndroidX (b/138870873).

Versão 1.3.1

Versão 1.3.1

19 de fevereiro de 2020

androidx.transition:transition:1.3.1 é lançado. A versão 1.3.1 contém estas confirmações.

Correções de bugs

  • Correção de um bug em que algumas visualizações animadas eram cortadas incorretamente durante o uso de ChangeTransform (b/148798452).

Versão 1.3.0

Versão 1.3.0

22 de janeiro de 2020

androidx.transition:transition:1.3.0 é lançado. A versão 1.3.0 contém essas confirmações (link em inglês).

Mudanças importantes desde a versão 1.2.0

  • Melhorias em Fragment 1.2.0: melhoria na integração com o Fragment 1.2.0 para garantir que a visualização do fragmento não seja destruída antes da conclusão da transição e que as transições sejam canceladas no momento adequado

Versão 1.3.0-rc02

4 de dezembro de 2019

androidx.transition:transition:1.3.0-rc02 é lançado. A versão 1.3.0-rc02 contém essas confirmações (link em inglês).

Correções de bugs

  • Correção de um problema em que as visualizações eram incorretamente marcadas como INVISIBLE depois de exibirem um fragmento oculto (b/70793925, link em inglês).

Versão 1.3.0-rc01

23 de outubro de 2019

androidx.transition:transition:1.3.0-rc01 é lançado sem mudanças desde 1.3.0-beta01. A versão 1.3.0-rc01 contém essas confirmações (link em inglês).

Versão 1.3.0-beta01

9 de outubro de 2019

androidx.transition:transition:1.3.0-beta01 é lançado. A versão 1.3.0-beta01 contém essas confirmações (link em inglês).

Novos recursos

  • Integração aprimorada com Fragment 1.2.0-beta01 para garantir que a visualização do fragmento não seja destruída antes da conclusão da transição e que as transições sejam canceladas no momento adequado (aosp/1119841, link em inglês)

Versão 1.2.0

Versão 1.2.0

9 de outubro de 2019

androidx.transition:transition:1.2.0 é lançado sem mudanças desde a versão 1.2.0-rc01. A versão 1.2.0 contém essas confirmações (link em inglês).

Mudanças importantes desde a versão 1.1.0

Use essa versão se você estiver segmentando a API de nível 29. Caso contrário, algumas das transições não funcionarão corretamente. Em vez das chamadas de reflexão, essa versão usa os novos métodos públicos adicionados na API nível 29. Ela faz parte das nossas restrições ao esforço de interfaces que não são SDK.

Version 1.2.0-rc01

5 de setembro de 2019

androidx.transition:transition:1.2.0-rc01 é lançado sem mudanças desde a versão 1.2.0-beta01. As confirmações incluídas nessa versão podem ser encontradas aqui (link em inglês).

Versão 1.2.0-beta01

2 de julho de 2019

Lançamento de androidx.transition:transition:1.2.0-beta01. As confirmações incluídas nessa versão podem ser encontradas aqui (link em inglês).

Novos recursos

  • Use essa versão para a targetSdkVersion 29. Caso contrário, algumas das transições não funcionarão corretamente. Em vez das chamadas de reflexão, essa versão usa os novos métodos públicos adicionados na API nível 29. Ela faz parte das nossas restrições ao esforço de interfaces que não são SDK.

Versão 1.2.0-alpha01

7 de maio de 2019

Lançamento do androidx.transition:transition:1.2.0-alpha01.

Novos recursos

  • Use essa versão para a targetSdkVersion Q. Caso contrário, algumas das transições não funcionarão corretamente. Em vez das chamadas de reflexão, essa versão usa os novos métodos públicos adicionados em Q. Ela faz parte das nossas restrições ao esforço de interfaces que não são SDK.

Versão 1.1.0

Versão 1.1.0

2 de julho de 2019

Lançamento de androidx.transition:transition:1.1.0 sem mudanças desde 1.1.0-rc02. As confirmações incluídas nessa versão podem ser encontradas aqui (link em inglês).

Versão 1.1.0-rc02

5 de junho de 2019

androidx.transition:transition:1.1.0-rc02 é lançado. As confirmações incluídas nessa versão podem ser encontradas aqui (link em inglês).

Correções de bugs

  • Correção para TransitionManager.endTransitions() funcionar corretamente com transições dependentes (aosp/946400, link em inglês)

Versão 1.1.0-rc01

7 de maio de 2019

Lançamento de androidx.transition:transition:1.1.0-rc01. As confirmações incluídas nessa versão podem ser encontradas aqui (link em inglês).

Versão 1.1.0-beta01

3 de abril de 2019

Lançamento de androidx.transition:transition:1.1.0-beta01. As confirmações incluídas nessa versão podem ser encontradas aqui (link em inglês).

Correções de bugs

  • Corrigido bug de cache ViewGroupOverlay em Visibility, na API de nível 17 e anteriores (aosp/937350).

Versão 1.1.0-alpha02

13 de março de 2019

Lançamento de androidx.transition:transition:1.1.0-alpha02. A lista completa de confirmações incluídas nessa versão pode ser encontrada neste link.

Mudanças na API

  • O tipo de parâmetro do método de Scene.getCurrentScene() foi alterado de View para ViewGroup.

Correções de bugs

  • SidePropagation não funciona quando um atraso extra é disponibilizado por setStartDelay() (b/119839526).
  • ChangeImageTransform aplica a matriz incorreta quando interrompido antes da API 21. (b/123226255).
  • ChangeTransform funciona incorretamente em alguns casos antes da API 21 (b/125777978).

Versão 1.1.0-alpha01

3 de dezembro de 2018

Mudanças na API

  • aosp/807055: o método Scene.getCurrentScene(View) se tornou público. Ele permite escrever uma lógica condicional personalizada, dependendo da cena atual.

Correções de bugs

  • Correção de uma falha ao usar TransitionManager para recolher/expandir um item em RecyclerView ( b/37129527).
  • Correção de uma animação incorreta quando duas transições de Visibility eram aplicadas (b/62629600).
  • Permissão de valores modificados, como duração e interpolador, para filhos do TransitionSet (b/64644617).
  • Vários outros bugs secundários foram corrigidos.