Compose Animation

Crie animações nos aplicativos Jetpack Compose para enriquecer a experiência do usuário.
Atualização mais recente Versão estável Candidata a lançamento Versão Beta Versão Alfa
15 de junho de 2022 1.1.1 1.2.0-rc01 - -

Estrutura

O Compose é uma combinação de sete IDs de grupos do Maven no androidx. Cada grupo contém um subconjunto direcionado de funcionalidades, cada um com um conjunto próprio de notas da versão.

Esta tabela explica os grupos e contém links para cada conjunto de notas da versão.

GrupoDescrição
compose.animationCrie animações nos aplicativos Jetpack Compose para enriquecer a experiência do usuário.
compose.compilerTransforme funções @Composable e ative otimizações com um plug-in do compilador Kotlin.
compose.foundationCrie aplicativos do Jetpack Compose com blocos de construção prontos e amplie a base para criar suas próprias peças de sistema de design.
compose.materialCrie IUs do Jetpack Compose com componentes do Material Design prontos para uso. Este é o ponto de entrada de nível mais alto do Compose, projetado para fornecer componentes que correspondam aos descritos em www.material.io.
compose.material3Crie IUs do Jetpack Compose usando componentes do Material Design 3, a nova versão do Material Design. O Material 3 inclui temas e componentes atualizados, além de recursos de personalização do Material You, como cores dinâmicas, e foi desenvolvido para ser coeso com o novo estilo visual do Android 12 e com a IU do sistema.
compose.runtimeElementos fundamentais do modelo de programação e do gerenciamento de estado do Compose e do ambiente de execução principal do plug-in Compose Compiler.
compose.uiComponentes fundamentais do Compose UI necessários para interagir com o dispositivo, incluindo layout, desenho e entrada.

Declarar dependências

Para adicionar uma dependência ao Compose, adicione 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 no arquivo build.gradle para seu app ou módulo:

Groovy

dependencies {
    implementation "androidx.compose.animation:animation:1.2.0-rc01"
}

android {
    buildFeatures {
        compose true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.2.0-rc01"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

Kotlin

dependencies {
    implementation("androidx.compose.animation:animation:1.2.0-rc01")
}

android {
    buildFeatures {
        compose = true
    }

    composeOptions {
        kotlinCompilerExtensionVersion = "1.2.0-rc01"
    }

    kotlinOptions {
        jvmTarget = "1.8"
    }
}

Para ver 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.2

Versão 1.2.0-rc01

15 de junho de 2022

Lançamento de androidx.compose.animation:animation:1.2.0-rc01, androidx.compose.animation:animation-core:1.2.0-rc01 e androidx.compose.animation:animation-graphics:1.2.0-rc01. A versão 1.2.0-rc01 contém estas confirmações.

Mudanças na API

  • As interfaces em bibliotecas do Compose agora são criadas usando métodos de interface padrão do jdk8 (I5bcf1).

Versão 1.2.0-beta03

1º de junho de 2022

Lançamento de androidx.compose.animation:animation:1.2.0-beta03, androidx.compose.animation:animation-core:1.2.0-beta03 e androidx.compose.animation:animation-graphics:1.2.0-beta03. A versão 1.2.0-beta03 contém estas confirmações.

Mudanças na API

  • Curvas de easing experimental foram adicionadas para animações (I64a38).

Versão 1.2.0-beta02

18 de maio de 2022

Lançamento de androidx.compose.animation:animation:1.2.0-beta02, androidx.compose.animation:animation-core:1.2.0-beta02 e androidx.compose.animation:animation-graphics:1.2.0-beta02. A versão 1.2.0-beta02 contém estas confirmações.

Versão 1.2.0-beta01

11 de maio de 2022

Lançamento de androidx.compose.animation:animation:1.2.0-beta01, androidx.compose.animation:animation-core:1.2.0-beta01 e androidx.compose.animation:animation-graphics:1.2.0-beta01. A versão 1.2.0-beta01 contém estas confirmações.

  • Esta é a primeira versão Beta da 1.2. Não há mudanças desde a última versão Alfa.

Versão 1.2.0-alpha08

20 de abril de 2022

Lançamento de androidx.compose.animation:animation:1.2.0-alpha08, androidx.compose.animation:animation-core:1.2.0-alpha08 e androidx.compose.animation:animation-graphics:1.2.0-alpha08. A versão 1.2.0-alpha08 contém estas confirmações.

Versão 1.2.0-alpha07

6 de abril de 2022

Lançamento de androidx.compose.animation:animation:1.2.0-alpha07, androidx.compose.animation:animation-core:1.2.0-alpha07 e androidx.compose.animation:animation-graphics:1.2.0-alpha07. A versão 1.2.0-alpha07 contém estas confirmações.

Mudanças na API

  • AnimatedImageVector agora oferece suporte a repeatCount e repeatMode (Ia3e75, b/199304067).

Versão 1.2.0-alpha06

23 de março de 2022

Lançamento de androidx.compose.animation:animation:1.2.0-alpha06, androidx.compose.animation:animation-core:1.2.0-alpha06 e androidx.compose.animation:animation-graphics:1.2.0-alpha06. A versão 1.2.0-alpha06 contém estas confirmações.

Mudanças na API

  • A análise de drawables vetoriais foi atualizada para oferecer suporte ao espelhamento automático para virar o conteúdo de um VectorPainter se a direção atual do layout for RTL (I79cd9, b/185760237).

Correções de bugs

  • Atualização das APIs de gráficos vetoriais para usar a anotação que pode ser composta @VectorComposable adequada em vez de @UiComposable (I942bc).

Versão 1.2.0-alpha05

9 de março de 2022

Lançamento de androidx.compose.animation:animation:1.2.0-alpha05, androidx.compose.animation:animation-core:1.2.0-alpha05 e androidx.compose.animation:animation-graphics:1.2.0-alpha05. A versão 1.2.0-alpha05 contém estas confirmações.

Mudanças na API

  • Oba! A animação do Compose agora oferece suporte para a configuração "Escala de duração do Animator" das Opções do desenvolvedor (I5a4fc, b/161675988).

Versão 1.2.0-alpha04

23 de fevereiro de 2022

Lançamento de androidx.compose.animation:animation:1.2.0-alpha04, androidx.compose.animation:animation-core:1.2.0-alpha04 e androidx.compose.animation:animation-graphics:1.2.0-alpha04. A versão 1.2.0-alpha04 contém estas confirmações.

Versão 1.2.0-alpha03

9 de fevereiro de 2022

Lançamento de androidx.compose.animation:animation:1.2.0-alpha03, androidx.compose.animation:animation-core:1.2.0-alpha03 e androidx.compose.animation:animation-graphics:1.2.0-alpha03. A versão 1.2.0-alpha03 contém estas confirmações.

Versão 1.2.0-alpha02

26 de janeiro de 2022

Lançamento de androidx.compose.animation:animation:1.2.0-alpha02, androidx.compose.animation:animation-core:1.2.0-alpha02 e androidx.compose.animation:animation-graphics:1.2.0-alpha02. A versão 1.2.0-alpha02 contém estas confirmações.

Versão 1.2.0-alpha01

12 de janeiro de 2022

Lançamento de androidx.compose.animation:animation:1.2.0-alpha01, androidx.compose.animation:animation-core:1.2.0-alpha01 e androidx.compose.animation:animation-graphics:1.2.0-alpha01. A versão 1.2.0-alpha01 contém estas confirmações.

Mudanças na API

  • Use AnimatedImageVector.animatedVectorResource em vez de animatedVectorResource para carregar um arquivo de recurso <animated-vector>.
    • Use rememberAnimatedVectorResource em vez de AnimatedImageVector#painterFor para renderizar um AnimatedImageVector (I9c300).

Correções de bugs

  • Adição dos métodos toString à Animatable e AnimationResult (Icd3a6).

Atualizações de dependência

  • Agora depende do Kotlin 1.6.10.

Versão 1.1

Versão 1.1.1

23 de fevereiro de 2022

Lançamento de androidx.compose.animation:animation:1.1.1, androidx.compose.animation:animation-core:1.1.1 e androidx.compose.animation:animation-graphics:1.1.1. A versão 1.1.1 contém estas confirmações.

Correções de bugs

  • A NullPointerException em androidx.compose.ui.platform.RenderNodeLayer.updateDisplayList foi corrigida (aosp/1947059, b/206677462).
  • A falha causada pelo conteúdo da área de transferência durante a leitura no Android foi corrigida (I06020, b/197769306).
  • RTL corrigido no elemento LazyVerticalGrid (aosp/1931080, b/207510535).

Versão 1.1.0

9 de fevereiro de 2022

Lançamento de androidx.compose.animation:animation:1.1.0, androidx.compose.animation:animation-core:1.1.0 e androidx.compose.animation:animation-graphics:1.1.0. A versão 1.1.0 contém estas confirmações.

Mudanças importantes desde a versão 1.0.0

  • Suporte estável para o efeito de rolagem do Android 12.
  • Melhorias no dimensionamento da área de toque.
  • Observe que, em relação ao Compose 1.0, os componentes do Material vão expandir o espaço de layout para satisfazer o tamanho da área de toque das diretrizes de acessibilidade (links em inglês) do Material Design. Por exemplo, a área de toque do botão será expandida para um tamanho mínimo de 48 x 48 dp, mesmo que você defina um tamanho menor para o botão. Isso alinha o Compose Material ao mesmo comportamento dos Componentes do Material Design para ser consistente se você combinar visualizações e o Compose. Essa mudança também garante que, ao criar a IU usando os componentes do Compose Material, os requisitos mínimos para a acessibilidade da área de toque sejam atendidos.
  • Suporte estável à coluna de navegação.
  • Upgrade de várias APIs anteriormente experimentais para a versão estável.
  • Suporte para as versões mais recentes do Kotlin.

Versão 1.1.0-rc03

26 de janeiro de 2022

Lançamento de androidx.compose.animation:animation:1.1.0-rc03, androidx.compose.animation:animation-core:1.1.0-rc03 e androidx.compose.animation:animation-graphics:1.1.0-rc03. A versão 1.1.0-rc03 contém estas confirmações.

Correções de bugs

  • Atualização para oferecer suporte ao Compose Material 1.1.0-rc03.

Versão 1.1.0-rc01

15 de dezembro de 2021

Lançamento de androidx.compose.animation:animation:1.1.0-rc01 e androidx.compose.animation:animation-core:1.1.0-rc01. A versão 1.1.0-rc01 contém estas confirmações.

Mudanças na API

  • Use AnimatedImageVector.animatedVectorResource em vez de animatedVectorResource para carregar um arquivo de recurso <animated-vector>.
    • Use rememberAnimatedVectorResource em vez de AnimatedImageVector#painterFor para renderizar um AnimatedImageVector (I9c300).

Versão 1.1.0-beta04

1.º de dezembro de 2021

Lançamento de androidx.compose.animation:animation:1.1.0-beta04, androidx.compose.animation:animation-core:1.1.0-beta04 e androidx.compose.animation:animation-graphics:1.1.0-beta04. A versão 1.1.0-beta04 contém estas confirmações.

Novos recursos

  • Atualização para ser compatível com Kotlin 1.6.0.

Versão 1.1.0-beta03

17 de novembro de 2021

Lançamento de androidx.compose.animation:animation:1.1.0-beta03, androidx.compose.animation:animation-core:1.1.0-beta03 e androidx.compose.animation:animation-graphics:1.1.0-beta03. A versão 1.1.0-beta03 contém estas confirmações.

Mudanças na API

  • O novo modificador Modifier.onPlaced foi adicionado para permitir que a mudança de posição seja observada. Portanto, é possível fazer outras mudanças no deslocamento do modificador filho com base na mudança de posição observada (I558fd).
  • Novo suporte para contentKey na API Crossfade. A contentKey será usada pelo sistema de animação para verificação de igualdade. Por isso, a diferenciação personalizada em estados pode ser implementada especificando a contentKey adequada para diferentes estados.

    A contentKey também será usada como a chave para salvar e restaurar o conteúdo (I2e055, b/197907070).

Versão 1.1.0-beta02

3 de novembro de 2021

Lançamento de androidx.compose.animation:animation:1.1.0-beta02, androidx.compose.animation:animation-core:1.1.0-beta02 e androidx.compose.animation:animation-graphics:1.1.0-beta02. A versão 1.1.0-beta02 contém estas confirmações.

Correções de bugs

  • Novas APIs de animação para suporte a ferramentas. Mais especificamente, elas permitem que as ferramentas inspecionem as animações e as configurações delas em transições (I4116e).

Versão 1.1.0-beta01

27 de outubro de 2021

Lançamento de androidx.compose.animation:animation:1.1.0-beta01, androidx.compose.animation:animation-core:1.1.0-beta01 e androidx.compose.animation:animation-graphics:1.1.0-beta01. A versão 1.1.0-beta01 contém estas confirmações.

Mudanças na API

  • Novas APIs de animação para suporte a ferramentas. Mais especificamente, elas permitem que as ferramentas inspecionem as animações e as configurações delas em transições (I4116e).

Versão 1.1.0-alpha06

13 de outubro de 2021

Lançamento de androidx.compose.animation:animation:1.1.0-alpha06, androidx.compose.animation:animation-core:1.1.0-alpha06 e androidx.compose.animation:animation-graphics:1.1.0-alpha06. A versão 1.1.0-alpha06 contém estas confirmações.

Versão 1.1.0-alpha05

29 de setembro de 2021

Lançamento de androidx.compose.animation:animation:1.1.0-alpha05, androidx.compose.animation:animation-core:1.1.0-alpha05 e androidx.compose.animation:animation-graphics:1.1.0-alpha05. A versão 1.1.0-alpha05 contém estas confirmações.

Mudanças na API

  • EnterTransition, ExitTransition e algumas das APIs AnimatedVisibility agora estão estáveis. MutableTransitionState.isIdle também deixou de ser experimental (I5072d).

  • Alteração interruptiva: as lambdas em fábricas Enter/ExitTransition foram movidas para a última posição na lista de parâmetros (I5072d).

Versão 1.1.0-alpha04

15 de setembro de 2021

Lançamento de androidx.compose.animation:animation:1.1.0-alpha04, androidx.compose.animation:animation-core:1.1.0-alpha04 e androidx.compose.animation:animation-graphics:1.1.0-alpha04. A versão 1.1.0-alpha04 contém estas confirmações.

Versão 1.1.0-alpha03

1.º de setembro de 2021

Lançamento de androidx.compose.animation:animation:1.1.0-alpha03, androidx.compose.animation:animation-core:1.1.0-alpha03 e androidx.compose.animation:animation-graphics:1.1.0-alpha03. A versão 1.1.0-alpha03 contém estas confirmações.

Novos recursos

  • O Compose 1.1.0-alpha03 foi atualizado para depender do Kotlin 1.5.30 (I74545).

Versão 1.1.0-alpha02

18 de agosto de 2021

Lançamento de androidx.compose.animation:animation:1.1.0-alpha02, androidx.compose.animation:animation-core:1.1.0-alpha02 e androidx.compose.animation:animation-graphics:1.1.0-alpha02. A versão 1.1.0-alpha02 contém estas confirmações.

Mudanças na API

  • O StartOffset agora é compatível com recursos repetíveis e infiniteRepeatable, como uma maneira de atrasar o horário de início ou avançar a animação antes que ela comece. Esse deslocamento inicial não será repetido (Ic679f, b/195079908).
  • Nova transição de entrada/saída para escala. Ela pode ser usada em combinação com outros tipos de Enter/ExitTransitions (I372da, b/191325593).

Versão 1.1.0-alpha01

4 de agosto de 2021

Lançamento de androidx.compose.animation:animation:1.1.0-alpha01, androidx.compose.animation:animation-core:1.1.0-alpha01 e androidx.compose.animation:animation-graphics:1.1.0-alpha01. A versão 1.1.0-alpha01 contém estas confirmações.

Mudanças na API

  • AnimatedImageVector e as APIs relacionadas agora estão no novo módulo androidx.compose.animation:animation-graphics (I60873).

Correções de bugs

Versão 1.0

Versão 1.0.5

3 de novembro de 2021

Lançamento de androidx.compose.animation:animation:1.0.5 e androidx.compose.animation:animation-core:1.0.5. A versão 1.0.5 contém estas confirmações.

Correções de bugs

  • Uma falha de rastreamento de instâncias derivedStateOf foi corrigida (aosp/1792247).

Versão 1.0.4

13 de outubro de 2021

Lançamento de androidx.compose.animation:animation:1.0.4 e androidx.compose.animation:animation-core:1.0.4. A versão 1.0.4 contém estas confirmações.

Atualizações de dependência

  • Atualização para depender do Kotlin 1.5.31.

Versão 1.0.3

29 de setembro de 2021

Lançamento de androidx.compose.animation:animation:1.0.3 e androidx.compose.animation:animation-core:1.0.3. A versão 1.0.3 contém estas confirmações.

Atualizações de dependência

  • Atualização para depender do Kotlin 1.5.30.

Versão 1.0.2

1.º de setembro de 2021

Lançamento de androidx.compose.animation:animation:1.0.2 e androidx.compose.animation:animation-core:1.0.2. A versão 1.0.2 contém estas confirmações.

Atualização para oferecer suporte à versão 1.0.2 do Compose. O Compose 1.0.2 ainda é compatível com o Kotlin 1.5.21.

Versão 1.0.1

4 de agosto de 2021

Lançamento de androidx.compose.animation:animation:1.0.1 e androidx.compose.animation:animation-core:1.0.1. A versão 1.0.1 contém estas confirmações.

Atualizações de dependência

  • Atualização para depender do Kotlin 1.5.21.

Versão 1.0.0

28 de julho de 2021

Lançamento de androidx.compose.animation:animation:1.0.0 e androidx.compose.animation:animation-core:1.0.0. A versão 1.0.0 contém estas confirmações.

Principais recursos da versão 1.0.0

Esta é a primeira versão estável do Compose. Confira mais detalhes na postagem do blog oficial sobre o lançamento do Compose (link em inglês).

Problemas conhecidos

  • Se você está usando o Android Studio Bumblebee Canary 4 ou o AGP 7.1.0-alpha04/7.1.0-alpha05, pode encontrar esta falha:

      java.lang.AbstractMethodError: abstract method "void androidx.lifecycle.DefaultLifecycleObserver.onCreate(androidx.lifecycle.LifecycleOwner)"
    

    Para corrigi-la, aumente temporariamente a minSdkVersion para 24+ no arquivo build.gradle. Esse problema será corrigido na próxima versão do Android Studio Bumblebee e no AGP 7.1 (b/194289155).

Versão 1.0.0-rc02

14 de julho de 2021

Lançamento de androidx.compose.animation:animation:1.0.0-rc02 e androidx.compose.animation:animation-core:1.0.0-rc02. A versão 1.0.0-rc02 contém estas confirmações.

Versão 1.0.0-rc01

1º de julho de 2021

Lançamento de androidx.compose.animation:animation:1.0.0-rc01 e androidx.compose.animation:animation-core:1.0.0-rc01. A versão 1.0.0-rc01 contém estas confirmações.

Correções de bugs

  • InfiniteAnimationPolicy foi movido para androidx.compose.ui:ui (I5eb09, b/160602714).

Versão 1.0.0-beta09

16 de junho de 2021

Lançamento de androidx.compose.animation:animation:1.0.0-beta09 e androidx.compose.animation:animation-core:1.0.0-beta09. A versão 1.0.0-beta09 contém estas confirmações.

Mudanças na API

  • Novo AnimatedContent que pode ser composto. Ele gerencia a mudança de conteúdo usando ContentTransform personalizável conforme novos conteúdos de destino entram e o conteúdo inicial sai. Diferentes combinações de transições de entrada e saída podem ser usadas para produzir uma aparência personalizada. Como parte da transformação de conteúdo, AnimatedContent anima automaticamente o próprio tamanho para corresponder ao conteúdo recebido (I2c3df).
  • ManualFrameClock foi removido. Se você precisar controlar as animações, use composeTestRule.mainClock (I3c3e8, b/189951065).

Regras de perfil adicionadas

Nesta versão, adicionamos as regras de perfil aos seguintes módulos do Compose (I14ed6):

  • androidx.compose.animation
  • androidx.compose.animation-core
  • androidx.compose.foundation
  • androidx.compose.foundation-layout
  • androidx.compose.material
  • androidx.compose.material-ripple
  • androidx.compose.runtime
  • androidx.compose.ui
  • androidx.compose.ui.geometry
  • androidx.compose.ui.graphics
  • androidx.compose.ui.text
  • androidx.compose.ui.text
  • androidx.compose.ui.unit
  • androidx.compose.ui.util

O que são as regras de perfil?

  • As regras de perfil para uma biblioteca são especificadas em um arquivo de texto baseline-prof.txt localizado no diretório src/main ou equivalente. O arquivo especifica uma regra por linha. Nesse caso, uma regra é um padrão para a correspondência de métodos ou classes na biblioteca. A sintaxe dessas regras é um superconjunto do formato de perfil do ART legível que é utilizada ao usar adb shell profman --dump-classes-and-methods .... Essas regras podem ter uma das duas formas destinadas a métodos ou classes.

  • Uma regra de método terá o seguinte padrão:

    <FLAGS><CLASS_DESCRIPTOR>-><METHOD_SIGNATURE>
    
  • E uma regra de classe terá o seguinte padrão:

    <CLASS_DESCRIPTOR>
    
  • Aqui, <FLAGS> é um ou mais dos caracteres H, S e P, para indicar se esse método precisa ser sinalizado como "Hot" (frequente), "Startup" (de inicialização) ou "Post Startup" (pós-inicialização).

  • O <CLASS_DESCRIPTOR> é o descritor da classe à qual o método desejado pertence. Por exemplo, a classe androidx.compose.runtime.SlotTable teria um descritor de Landroidx/compose/runtime/SlotTable;.

  • A <METHOD_SIGNATURE> é a assinatura do método e inclui o nome, os tipos de parâmetro e os tipos de retorno do método. Por exemplo, o método fun isPlaced(): Boolean em LayoutNode tem a assinatura isPlaced()Z.

  • Esses padrões podem ter caracteres curinga (**, * e ?) para que uma única regra inclua vários métodos ou classes.

O que as regras fazem?

  • Um método com a sinalização H indica que ele é um método "hot" (frequente) e precisa ser compilado com antecedência.

  • Um método com a sinalização S indica que ele é chamado na inicialização e precisa ser compilado com antecedência para evitar o custo da compilação e interpretação dele no momento da inicialização.

  • Um método com a sinalização P indica que ele é chamado após a inicialização.

  • Uma classe presente nesse arquivo indica que ela é usada durante a inicialização e precisa ser pré-alocada no heap para evitar o custo do carregamento dela.

Como isso funciona?

  • As bibliotecas podem definir essas regras que serão empacotadas nos artefatos do AAR. Quando um app é criado com esses artefatos, essas regras são mescladas e usadas para criar um perfil do ART binário, compacto e específico para o app. O ART poderá usar esse perfil quando o app for instalado em dispositivos para compilar antecipadamente um subconjunto específico do app e melhorar o desempenho dele, especialmente a primeira execução. Isso não terá efeito nos aplicativos depuráveis.

Versão 1.0.0-beta08

2 de junho de 2021

Lançamento de androidx.compose.animation:animation:1.0.0-beta08 e androidx.compose.animation:animation-core:1.0.0-beta08. A versão 1.0.0-beta08 contém estas confirmações.

Correções de bugs

  • Agora, detectDragGesures, detectVerticalGestures e detectHorizontalGestures consumirão a mudança de posição automaticamente, sem precisar chamar change.consumePositionChange nos callbacks onDrag (I42fc4, b/185096350, b/187320697).
  • Modifier.onGloballyPositioned() mudou para informar as coordenadas desse modificador na cadeia de modificadores, não as coordenadas de layout após aplicar todos os modificadores. Isso significa que agora a ordem dos modificadores afeta as coordenadas que seriam informadas (Ieb67d, b/177926591).

Versão 1.0.0-beta07

18 de maio de 2021

Lançamento de androidx.compose.animation:animation:1.0.0-beta07 e androidx.compose.animation:animation-core:1.0.0-beta07. A Versão 1.0.0-beta07 contém estas confirmações.

Mudanças na API

  • Nova API AnimatedVisibility compatível com a visibilidade a ser especificada em um MutableTransitionState. Isso também permite que os estados da animação sejam observados externamente à AnimatedVisibility pelo currentState e isIdle.
    • Suporte à nova transição filha em Transition.
    • Suporte à animação de saída/entrada personalizada em AnimatedVisibility usando AnimationScope.transition.
    • Novo modificador animateEnterExit que pode ser acessado por todos os elementos filhos de AnimatedVisibility.
    • Suspensão do uso das APIs AnimatedVisibility que recebem um parâmetro initiallyVisible (I702f3).

Versão 1.0.0-beta06

5 de maio de 2021

Lançamento de androidx.compose.animation:animation:1.0.0-beta06 e androidx.compose.animation:animation-core:1.0.0-beta06. A versão 1.0.0-beta06 contém estas confirmações.

Versão 1.0.0-beta05

21 de abril de 2021

Lançamento de androidx.compose.animation:animation:1.0.0-beta05 e androidx.compose.animation:animation-core:1.0.0-beta05. A versão 1.0.0-beta05 contém estas confirmações.

Correções de bugs

  • Os arquivos AndroidManifest de ui-test-manifest e ui-tooling-data agora são compatíveis com o Android 12 (I6f9de, b/184718994).

Versão 1.0.0-beta04

7 de abril de 2021

Lançamento de androidx.compose.animation:animation:1.0.0-beta04 e androidx.compose.animation:animation-core:1.0.0-beta04. A versão 1.0.0-beta04 contém estas confirmações.

Mudanças na API

  • As instâncias públicas de RowScope, ColumnScope, BoxScope e BoxWithConstraintsScope foram removidas (I4e83e, b/181869067).

Versão 1.0.0-beta03

24 de março de 2021

Lançamento de androidx.compose.animation:animation:1.0.0-beta03 e androidx.compose.animation:animation-core:1.0.0-beta03. A versão 1.0.0-beta03 contém estas confirmações.

Versão 1.0.0-beta02

10 de Março de 2021

Lançamento de androidx.compose.animation:animation:1.0.0-beta02 e androidx.compose.animation:animation-core:1.0.0-beta02. A versão 1.0.0-beta02 contém estas confirmações.

Correções de bugs

  • Aplicação de restrições ao uso público de APIs experimentais (I6aa29, b/174531520).

Versão 1.0.0-beta01

24 de fevereiro de 2021

Lançamento de androidx.compose.animation:animation:1.0.0-beta01 e androidx.compose.animation:animation-core:1.0.0-beta01. A versão 1.0.0-beta01 contém estas confirmações.

Esta é a primeira versão do Compose 1.0.0 Beta.

Mudanças na API

  • InteractionState foi substituído por [Mutable]InteractionSource.
    • As interfaces são responsáveis por emitir / coletar eventos de interação.
    • Em vez de transmitir interactionState = remember { InteractionState() } para componentes como Button e Modifier.clickable(), use interactionSource = remember { MutableInteractionSource() }.
    • Em vez de: Interaction.Pressed in interactionState, use as funções de extensão em InteractionSource, como InteractionSource.collectIsPressedAsState().
    • Para casos de uso complexos, use InteractionSource.interactions para observar o fluxo de interações. Consulte as amostras e a documentação do InteractionSource para mais informações
    • (I85965, b/152525426, b/171913923, b/171710801, b/174852378).
  • Mudança dos pacotes de métodos smoothScrollBy e scrollBy para androidx.compose.foundation.gestures.* (I3f7c1, b/175294473).
  • Os modificadores de tamanho foram renomeados. Modifier.width/height/size foi renomeado como requiredWidth/requiredHeight/requiredSize. Modifier.preferenceWidth/preferenceHeight/preferencialSize foi renomeado como width/height/size (I5b414).
  • A orientação foi movida para o pacote básico. VelocirtTracker foi movido de ui.gesture para ui.input.pointer (Iff4a8, b/175294473).
  • AnimationClockObservable e subclasses foram removidos. AnimatedFloat foi removido (Icde52, b/177457083).
  • Modifier.draggable agora aceita DraggableState em vez de um lambda simples. Você pode criar o estado usando o rememberDraggableState { delta -> } para ter o mesmo comportamento de antes (Ica70f, b/175294473).
  • As APIs animate, animatedValue, AnimatedValue foram removidas (If27bc, b/177457083).
  • AnimationEndReason.Interrupted foi removido. CancellationException será gerada se a animação for interrompida (I2cbbc, b/179695417).
  • A API TargetAnimation foi removida (If47d1, b/177457083).

Versão 1.0.0-alpha12

10 de fevereiro de 2021

Lançamento de androidx.compose.animation:animation:1.0.0-alpha12 e androidx.compose.animation:animation-core:1.0.0-alpha12. A versão 1.0.0-alpha12 contém estas confirmações.

Mudanças na API

  • Modifier.pointerInput agora exige que as chaves "remember" indiquem quando a corrotina de detecção de entrada do ponteiro precisa ser reiniciada para novas dependências (I849cd).
  • Bounds foi renomeado como DpRect (I4b32a).
  • Unificação do nome do parâmetro de AnimationSpec para animationSpec em todo o sistema de animação. Além disso, haverá a restrição de Enter/ExitTransition para aceitar FiniteAnimationSpec (Ie47c5, b/177457083).
  • Animatable.snapTo e Animatable.stop agora são funções de suspensão (If4288).
  • De modo semelhante a quando removemos o state { 0 } que pode ser composto e passamos a promover o uso como remember { mutableStateOf(0) }, removeremos o savedInstanceState { 0 } que pode ser composto. Use rememberSaveable { mutableStateOf(0) } para salvar e restaurar automaticamente se o tipo usado dentro de MutableState puder ser armazenado no pacote. Se você transmitia um objeto de economia personalizado, agora precisará usar uma nova sobrecarga de rememberSaveable, que tem o parâmetro stateSaver. O uso será assim: val holder = rememberSaveable(stateSaver = HolderSaver) { mutableStateOf(Holder(0)) } (Ib4c26, b/177338004).
  • A assinatura do método do Crossfade foi atualizada para ser mais consistente com o restante do sistema de animação (Ib05ed, b/177457083).
  • rememberSavedInstanceState() foi renomeado como rememberSaveable() e movido para o pacote androidx.compose.runtime.saveable (I1366e, b/177338004).
  • RestorableStateHolder foi renomeado como SaveableStateHolder e movido para o pacote androidx.compose.runtime.saveable. O método interno RestorableStateProvider foi renomeado como SaveableStateProvider. O tipo genérico foi removido para que você possa transmitir qualquer valor como uma chave. A anotação experimental não é mais necessária (I0902e, b/174598702).
  • A API Modifier.animateContentSize foi atualizada para ser consistente com o restante do sistema de animação (I0bf75, b/177457083).
  • O uso de AnimatedValue/Float foi descontinuado. Use o Animatable (I71345, b/177457083).
  • O uso de tapGestureFilter, doubleTapGestureFilter, longPressGestureFilter e pressIndicaitonGestureFilter foi descontinuado. Use Modifier.clickable ou Modifier.pointerInput com a função detectTapGestures (I6baf9, b/175294473).
  • Introdução de um elemento de contexto de corrotina InfiniteAnimationPolicy que será aplicado em animações infinitas. Por padrão, nenhuma política é instalada, exceto durante a execução de testes com ComposeTestRule (I50ec4, b/151940543).
  • Os métodos de desestruturação e copy() foram removidos de várias classes em que raramente eram usados (I26702, b/178659281).
  • Agora, o tempo de reprodução na animação é unificado em nanossegundos (If776a).
  • O uso do artefato compose:runtime-dispatch foi descontinuado. MonotonicFrameClock agora pode ser encontrado em compose:runtime, e AndroidUiDispatcher pode ser encontrado em compose:ui (Ib5c36).
  • Foram adicionados Animation.isInfinite e VectorizedAnimationSpec.isInfinite, que sinalizam se uma animação é infinita ou não. Isso pode ser usado em implementações de animações para lidar com essas animações. Por exemplo, uma mensagem especial de "tempo restante" pode ser exibida ou, durante os testes, a animação pode ser cancelada para evitar uma espera indefinida pelo estado de inatividade (Iebb05, b/151940543).
  • Uso de Long em vez de Uptime como tipo de tempo de animação (Ie3aa7, b/177420019).

Versão 1.0.0-alpha11

28 de janeiro de 2021

Lançamento de androidx.compose.animation:animation:1.0.0-alpha11 e androidx.compose.animation:animation-core:1.0.0-alpha11. A versão 1.0.0-alpha11 contém estas confirmações.

Mudanças na API

  • A Transition baseada em TransitionDefinition foi descontinuada (I0ac57).
  • Um campo de rótulo é adicionado para que Transition e animações filhas sejam exibidas nas ferramentas (I619fb).
  • animateAsState agora é animateFooAsState, em que Foo é o tipo de variável que está sendo animada. Por exemplo, Float, Dp, Offset etc (Ie7e25).
  • Nova InfiniteTransition que executa qualquer número de animações filhas (I1da81).
  • Mudança das interfaces de parâmetro com estado do Material Design para que tenham funções que podem ser compostas e que retornam State<T>. Adiciona Animatable.asState() para facilitar a conversão de um Animatable em um State. Também muda o animateElevation para que se torne uma extensão de suspensão no Animatable (If613c).

Correções de bugs

  • O uso de onCommit, onDispose e onActive foi descontinuado e substituído pelas APIs SideEffect e DisposableEffect (If760e).
  • O estado inicial de updateTransition agora é compatível (Ifd51d).
  • Adicionamos o parâmetro de descrição de conteúdo a Image e Icon. Ele é usado para fornecer descrição para os serviços de acessibilidade (I2ac4c).
  • O uso de invalidate e compositionReference() foi descontinuado e substituído por currentRecomposeScope e rememberCompositionReference, respectivamente (I583a8).
  • Duration e Uptime serão substituídos por milissegundos Long, e essa etapa removerá a dependência de entrada do ponteiro nessas classes (Ia33b2, b/175142755, b/177420019).
  • clickable, toggleable e selectable agora podem ser criados fora da composição (I0a130, b/172938345, b/175294473).
  • Easing foi mudado para uma interface funcional (Ib14e5).
  • Novo método de fábrica items(count: Int) para o escopo de LazyColumn/LazyRow/LazyVerticalGrid. Agora, items(items: List) e itemsIndexed(items: List) são funções de extensão, então precisam ser importadas manualmente quando forem usadas. Novas sobrecargas de extensão para Arrays: items(items: Array) e itemsIndexed(Array) (I803fc, b/175562574).
  • Use TestCoroutineDispatcher nos testes (I532b6).
  • Remoção de PointerInputData e mudança de PointerInputChange para fornecer todos os campos de PointerInputData. PointerInputEvent e PointerInputEventData agora são internos porque não são usados em nenhuma API pública (Ifff97, b/175142755).

Versão 1.0.0-alpha10

13 de janeiro de 2021

Lançamento de androidx.compose.animation:animation:1.0.0-alpha10 e androidx.compose.animation:animation-core:1.0.0-alpha10. A versão 1.0.0-alpha10 contém estas confirmações.

Mudanças na API

  • Modificação de Velocity para ter partes de componentes e operações matemáticas (Ib0447).
  • @ExperimentalTesting foi renomeado para @ExperimentalTestApi para ser consistente com anotações de API experimentais semelhantes (Ia4502, b/171464963).
  • Renomeação de Posição para DpOffset e remoção de getDistance() (lb2dfd).
  • Remoção da API public Any.identityHashCode() (I025d7).

Correções de bugs

  • Nova API baseada em corrotina Animatable que garante exclusividade mútua entre as animações. Nova DecayAnimationSpec para ser compatível com animação de redução multidimensional (I820f2, b/168014930).
  • animate() agora é substituído por animateAsState(), que retorna um State<T> em vez de T. Isso permite um desempenho melhor, já que o escopo de invalidação pode ser restrito ao local em que o valor do State é lido (Ib179e).

Versão 1.0.0-alpha09

16 de dezembro de 2020

Lançamento de androidx.compose.animation:animation:1.0.0-alpha09 e androidx.compose.animation:animation-core:1.0.0-alpha09. A versão 1.0.0-alpha09 contém estas confirmações.

Mudanças na API

  • Dp.VectorConverter, Position.VectorConverter etc. foram movidos para animation-core e os VectorConveters antigos foram suspensos (If0c4b).
  • Introdução de um conjunto totalmente novo de APIs Transition com facilidade de uso melhorada e compatibilidade com animações adicionadas e destinos de animação calculados dinamicamente. Essas APIs são marcadas como experimentais para facilitar a diferenciação da API baseada em TransitionDefinition (Ia7fe3).

Correções de bugs

  • Lambdas em modificadores de deslocamento agora retornam IntOffset em vez de Float (Ic9ee5, b/174137212, b/174146755).
  • Suspensão do uso de LazyColumnFor, LazyRowFor, LazyColumnForIndexed e LazyRowForIndexed. Use LazyColumn e LazyRow (I5b48c).
  • Para suspender as APIs de entrada de ponteiro, o HandlePointerInputScope foi renomeado como AwaitPointerEventScope e o handlePointerInput() como awaitPointerEventScope() (Idf0a1, b/175142755).
  • Nova função InfiniteRepeatable para criar um InfiniteRepeatableSpec (I668e5).
  • Remoção da anotação de ExperimentalPointerInput (Ia7a24).

Versão 1.0.0-alpha08

2 de dezembro de 2020

Lançamento de androidx.compose.animation:animation:1.0.0-alpha08 e androidx.compose.animation:animation-core:1.0.0-alpha08. A versão 1.0.0-alpha08 contém estas confirmações.

Mudanças na API

  • Adição de verificação de lint para posicionamento e nomeação do parâmetro lambda composto, para verificar a consistência com as diretrizes do Compose. Também ocorreu a migração de algumas APIs usando children como o nome do lambda final para content, de acordo com a verificação e as orientações do lint (Iec48e).
  • As APIs anteriormente obsoletas foram removidas:
    • Modifier.onPositioned foi removido. Use Modifier.onGloballyPositioned.
    • Modifier.onDraw foi removido. Use Modifier.onDrawBehind.
    • Modifier.plus foi removido. Use Modifier.then.
    • Color.Unset foi removido. Use Color.Unspecified.
    • A classe PxBounds foi removida. Use Rect.
    • (Ie9d02, b/172562222).
  • Opção temporariamente adicionada para permitir que o TestAnimationClock seja orientado pelo MonotonicFrameClock (I1403b, b/173402197).

Correções de bugs

  • Modifier.drawLayer foi renomeado como Modifier.graphicsLayer. Além disso, houve a atualização das classes relacionadas para GraphicsLayer de acordo com o feedback do conselho da API (I0bd29, b/173834241).
  • Adição de APIs Modifier.scale/rotate como conveniências para drawLayer.
    • Renomeação de Modifier.drawOpacity para Modifier.alpha.
    • Renomeação de Modifier.drawShadow para Modifier.shadow (I264ca, b/173208140).
  • Os campos de posição e de tempo de atividade do PointerInputData não são mais anuláveis (Id468a).
  • Os modificadores offsetPx foram renomeados como offset. Agora, eles usam parâmetros lambda em vez de State (Ic3021, b/173594846).
  • Novas APIs para executar animações em corrotinas (Ied662).
  • Ambientes nomeados com Ambient como sufixo foram descontinuados e substituídos por novas propriedades prefixadas com Ambient, seguindo outras diretrizes das APIs Compose e Ambients (I33440).
  • O controle de tempo em testes (TestAnimationClock e os usos dele) agora é experimental (I6ef86, b/171378521).
  • Remoção do antigo módulo ui-test e dos stubs dele (I3a7cb).
  • A função RestorableStateHolder.withRestorableState foi renomeada como RestorableStateProvider (I66640).
  • A interface Alignment foi atualizada e transformada em funcional (I46a07, b/172311734).

Versão 1.0.0-alpha07

11 de novembro de 2020

Lançamento de androidx.compose.animation:animation:1.0.0-alpha07 e androidx.compose.animation:animation-core:1.0.0-alpha07. A versão 1.0.0-alpha07 contém estas confirmações.

Correções de bugs

  • O uso de AmbientTextStyle, ProvideTextStyle e AmbientContentColor de base foi descontinuado. Em vez disso, use as novas versões disponíveis na biblioteca Material. Em aplicativos que não usam Material, crie seus próprios ambientes de temas específicos do sistema de design que possam ser consumidos nos seus componentes (I74acc, b/172067770).
  • foundation.Text foi descontinuado e substituído por material.Text. Para uma API de texto básica e discreta que não consome valores de um tema, consulte androidx.compose.foundation.BasicText (If64cb).
  • MeasureResult foi removido do MeasureScope (Ibf96d, b/171184002).
  • Vários símbolos relacionados ao layout foram movidos de androidx.compose.ui para androidx.compose.layout.ui (I0fa98, b/170475424).

Versão 1.0.0-alpha06

28 de outubro de 2020

Lançamento de androidx.compose.animation:animation:1.0.0-alpha06 e androidx.compose.animation:animation-core:1.0.0-alpha06. A versão 1.0.0-alpha06 contém estas confirmações.

Mudanças na API

  • Ativação de transições em ComposeTestRule. Remoção da opção para ativar o cursor piscante na ComposeTestRule (If0de3).

Versão 1.0.0-alpha05

14 de outubro de 2020

Lançamento de androidx.compose.animation:animation:1.0.0-alpha05 e androidx.compose.animation:animation-core:1.0.0-alpha05. A versão 1.0.0-alpha05 contém estas confirmações.

Mudanças na API

  • Nova interface e subclasses do Animation: essas classes armazenam as condições de início e fim para animações, permitindo que o valor e a velocidade sejam consultados apenas por tempo de reprodução (Ie95bd, b/163329867).

Correções de bugs

  • OnPositionedModifier foi renomeado como OnGloballyPositionedModifier e onPositioned() foi renomeado como onGloballyPositioned(). (I587e8, b/169083903)
  • Descontinuação do uso das APIs contentColor() e currentTextStyle() e substituição delas pelos ambientes AmbientContentColor e AmbientTextStyle, respectivamente. É possível acessar o valor atual usando .current na propriedade do ambiente, assim como em qualquer outro ambiente. Essa mudança foi feita para manter a consistência e para evitar a existência de várias maneiras de alcançar o mesmo resultado. Também renomeia algumas propriedades de ambiente para descrever melhor a finalidade delas da seguinte maneira:

    • ContentColorAmbient -> AmbientContentColor
    • TextStyleAmbient -> AmbientTextStyle
    • IndicationAmbient -> AmbientIndication
    • EmphasisAmbient -> AmbientEmphasisLevels
    • RippleThemeAmbient -> AmbientRippleTheme (I37b6d)

Versão 1.0.0-alpha04

1º de outubro de 2020

Lançamento de androidx.compose.animation:animation:1.0.0-alpha04 e androidx.compose.animation:animation-core:1.0.0-alpha04. A versão 1.0.0-alpha04 contém estas confirmações.

Mudanças na API

  • Anotação de rootAnimationClockFactory, transitionEnabled, blinkingCursorEnabled e textInputServiceFactory com @VisibleForTesting, tornando-as APIs internas e ocultando o kdoc delas (I554eb, b/168308412).

Correções de bugs

  • Atualização de várias APIs Graphics
    • As APIs de transformação de escala e rotação foram atualizadas para consumir um único parâmetro Offset para representar a coordenada dinâmica em vez de parâmetros de flutuação separados para as coordenadas x/y em DrawScope e DrawTransform.
    • Remoção dos métodos Rect.expandToInclude e Rect.join.
    • Documentação do Radius atualizada para informar oval, além de elíptico.
    • Adição da documentação para indicar que o construtor público da classe Radius in-line não deve ser chamado diretamente, mas os objetos Radius precisam ser instanciados pelos construtores de função deles.
    • Remoção das APIs RoundRect para consultar topRight, bottomRight, bottomCenter etc.
    • O uso de Rect.shift foi descontinuado e substituído por Rect.translate.
    • Remoção das APIs RoundRect.grow e Rect.shrink.
    • Renomeação de RoundRect.outerRect para Rect.boundingRect.
    • Remoção dos métodos RoundRect.middleRect/tallMiddleRect/wideMiddleRect e Rect.isStadium.
    • Renomeação de RoundRect.longestSide para RoundRect.maxDimension.
    • Renomeação de RoundRect.shortestSide para RoundRect.minDimension.
    • Mudança de RoundRect.center para que seja uma propriedade em vez de uma função.
    • Atualização do construtor RoundRect para consumir propriedades do Radius em vez de parâmetros individuais para valores de raio x/y.
    • Remoção das APIs Size que pressupunham ser um retângulo com origem em 0,0.
    • Adição de uma API de destruição ao Radius.
    • Migração de várias funções de extensão RoundRect para serem propriedades
    • (I8f5c7, b/168762961).
  • O uso de foundation.Box foi descontinuado. Use foundation.layout.Box (Ie5950, b/167680279).
  • Stack foi renomeado como Box. O uso do elemento Box anterior será descontinuado e substituído pelo novo Box em compose.foundation.layout. O comportamento do novo Box quando tem vários filhos é empilhá-los um em cima do outro. Isso é diferente do Box anterior, que se comportava de maneira semelhante a Column (I94893, b/167680279).
  • Os parâmetros de decoração do Box foram descontinuados. Se você quiser ter decorações/padding na sua caixa, use Modifiers, como Modifier.background, Modifier.border, Modifier.padding (Ibae92, b/167680279).
  • Evitamos importações estáticas de conteúdo de escopos de layout, por exemplo, alignWithSiblings no RowScope. A alternativa do escopo explícito precisa ser usada: with(RowScope) { Modifier.alignWithSiblings(FirstBaseline) } (I216be, b/166760797).

Versão 1.0.0-alpha03

16 de setembro de 2020

Lançamento de androidx.compose.animation:animation:1.0.0-alpha03 e androidx.compose.animation:animation-core:1.0.0-alpha03. A versão 1.0.0-alpha03 contém estas confirmações.

Correções de bugs

  • Os usos da gravidade foram renomeados de forma consistente para "align" ou "alignment" nas APIs de layout (I2421a, b/164077038).

Versão 1.0.0-alpha02

2 de setembro de 2020

Lançamento de androidx.compose.animation:animation:1.0.0-alpha02 e androidx.compose.animation:animation-core:1.0.0-alpha02. A versão 1.0.0-alpha02 contém estas confirmações.

Mudanças na API

  • Adição de ManualFrameClock.hasAwaiters para ver se algo está aguardando um frame desse relógio, runWithManualClock como uma substituição de runBlocking ao executar testes que precisam de um ManualFrameClock e TestUiDispatcher.Main que fornece acesso fácil ao principal agente de IU nos seus testes.

    Por exemplo:

    @Test
    fun myTest() = runWithManualClock { clock ->
        // set some compose content
        withContext(TestUiDispatcher.Main) {
            clock.advanceClock(1000L)
        }
        if (clock.hasAwaiters) {
            println("The clock has awaiters")
        } else {
            println("The clock has no more awaiters")
        }
    }
    

    I0a85b, b/161247083

Correções de bugs

  • O uso do onPreCommit foi descontinuado. Agora, o onCommit tem o comportamento de onPreCommit.

    O onCommit e o onActive agora são executados no mesmo frame "choreographer" que as mudanças de composição confirmadas, em vez de no início do próximo frame "choreographer" (I70403).

Versão 1.0.0-alpha01

26 de agosto de 2020

Lançamento de androidx.compose.animation:animation:1.0.0-alpha01 e androidx.compose.animation:animation-core:1.0.0-alpha01. A versão 1.0.0-alpha01 contém estas confirmações.

Versão 0.1.0-dev

Versão 0.1.0-dev17

19 de agosto de 2020

Lançamento de androidx.compose.animation:animation:0.1.0-dev17 e androidx.compose.animation:animation-core:0.1.0-dev17. A versão 0.1.0-dev17 contém estas confirmações.

Novos recursos

Mudanças na API

  • Offset agora é uma classe inline (Iaec70).
  • IntOffset agora é uma classe inline (Iac0bf).
  • IntSize agora é uma classe inline (I2bf42).
  • AnimatedVisibilty que pode ser composta anima o aparecimento e o desaparecimento do conteúdo filho.

    Introdução de EnterTransition e ExitTransition para trabalhar com AnimatedVisibilty que pode ser composta e fornecer três tipos diferentes de animação de aparecimento e desaparecimento: esmaecer, deslizar e expandir/reduzir o conteúdo. Os diferentes tipos de animação podem ser combinados para alcançar uma aparência mais personalizada (Idda11).

  • O uso de PxBounds foi descontinuado e substituído por Rect. Atualização de todos os usos de PxBounds com rect e adição de descontinuação/substituição por anotações para auxiliar na migração (I37038, b/162627058).

Correções de bugs

  • PlacementScope.placeAbsolute() foi renomeado como PlacementScope.place(), e o PlacementScope.place() anterior foi renomeado como PlacementScope.placeRelative(). Por essa razão, o método PlacementScope.place() não espelhará de forma automática a posição em contextos da direita para a esquerda. Se você quiser o espelhamento, use PlacementScope.placeRelative() (I873ac, b/162916675).
  • O uso do elemento de composição state { ... } foi descontinuado e substituído pelas chamadas explícitas de remember { mutableStateOf(...) } para maior clareza. Isso reduz a plataforma geral da API e o número de conceitos de gerenciamento de estado e corresponde ao padrão by mutableStateOf() para delegação de propriedade de classe (Ia5727).

Versão 0.1.0-dev16

5 de agosto de 2020

Lançamento de androidx.compose.animation:animation:0.1.0-dev16 e androidx.compose.animation:animation-core:0.1.0-dev16. A versão 0.1.0-dev16 contém estas confirmações.

Mudanças na API

  • Os conversores de vetor integrados para converter unidades integradas agora podem ser acessados por Foo.VectorConverter. Por exemplo, Dp.VectorConverter, Color.VectorConverter, Float.VectorConverter etc. (I3e273).
  • Compatibilidade com o listener final em Modifier.animateContentSize(), de modo que, quando a animação de mudança de tamanho termina, o listener seja notificado, junto do tamanho inicial/final da animação. (I277b2).
  • Novo modificador animateContentSize, que anima a mudança do tamanho do layout do modificador filho (Ieffdc).
  • Foi adicionado um MonotonicFrameAnimationClock, que permite usar um MonotonicFrameClock como um AnimationClockObservable para fazer a ponte entre os novos relógios baseados em corrotinas e APIs que ainda usam os relógios antigos com base em callback.

    O MonotonicFrameClock equivalente de ManualAnimationClock agora é ManualFrameClock (I111c7, b/161247083).

Correções de bugs

  • Atualização das APIs para compatibilidade da direita para a esquerda. LayoutDirectionAmbient foi adicionado e pode ser usado para ler e mudar a direção do layout. Modifier.rtl e Modifier.ltr foram removidos (I080b3).
  • Exigência de que o tipo T seja especificado explicitamente para o transitionDefinition (I1aded).
  • O pacote foundation.shape.corner foi nivelado para foundation.share (I46491, b/161887429).
  • O uso de Modifier.plus foi descontinuado. Use Modifier.then. "Then" tem um sinal mais forte de ordem, mas também proíbe o tipo Modifier.padding().background() + anotherModifier, que interrompe a cadeia e é mais difícil de ler (Iedd58, b/161529964).
  • Renomeação de Modifier.drawBackground como Modifier.background (I13677).

Versão 0.1.0-dev15

22 de julho de 2020

Lançamento de androidx.compose.animation:animation:0.1.0-dev15 e androidx.compose.animation:animation-core:0.1.0-dev15. A versão 0.1.0-dev15 contém estas confirmações.

Atualização de dependências

  • Para usar a versão 0.1.0-dev15 do Compose, será necessário atualizar suas dependências de acordo com os novos snippets de código mostrados acima em Como declarar dependências.

Mudanças na API

  • A API Transition foi modificada para retornar um TransitionState em vez de passar o TransitionState para filhos. Isso torna a API mais consistente com as APIs animate() (I24e38).
  • Parâmetro modificador adicionado para o Crossfade (I87cfe, b/159706180).
  • Uso de AnimationSpec em vez de AnimationBuilder nas APIs de nível superior para esclarecer o conceito de especificação de animação estática.
    • Melhore a DSL de transição removendo o requisito de lambda para criar AnimationSpecs, como Tween, Spring. Em vez disso, os parâmetros do construtor são recebidos diretamente.
    • Melhore a facilidade geral de uso do AnimationSpec para abrir construtores em vez de depender deles.
    • Mude a duração e o atraso de KeyFrames e Tween para Int. Isso elimina as transmissões desnecessárias e a sobrecarga de métodos (para oferecer suporte a valores Long e Int) (Ica0b4).
  • Uso de IntPx substituído por Int e o de IntPxPosition por IntOffset. IntPxSize foi substituído por IntSize (Ib7b44).
  • Para consolidar o número de classes usadas para representar informações de tamanho, padronize o uso da classe Size em vez de PxSize. Isso fornece os benefícios de uma classe in-line para usar um long para empacotar dois valores de pontos flutuantes e representar a largura e a altura como flutuantes (Ic0191).
  • Para consolidar o número de classes usadas para representar informações de posicionamento, padronize o uso da classe Offset em vez de PxPosition. Isso fornece os benefícios de uma classe in-line para usar um long para empacotar dois valores de pontos flutuantes e representar os deslocamentos x e y como flutuantes (I3ad98).
  • O uso da classe Px foi substituído em várias classes do Compose como parte do grande esforço de refatoração a fim de depender apenas de tipos primitivos e de Dp para os parâmetros de pixel (I086f4).
  • Inclusão de compatibilidade com animate() para Dp, Px, Size, Position, Bounds, PxPosition, PxSize, PxBounds, IntPx, IntPxSize, IntPxPosition, IntPxBounds e AnimationVector (Ib7518).
  • O Crossfade agora aceita o parâmetro AnimationBuilder opcional para permitir a configuração da animação (I6d6e0).
  • Todos os usos de Color anuláveis foram substituídos na API por não anuláveis e usam Color.Unset em vez de null (Iabaa7).
  • Classe ValueHolder removida. Reestruturação das classes AnimatedValue e AnimatedFloat para tornar o campo de valor da animação abstrato para que as subclasses possam observar a atualização do valor.
    • Adição de classes de modelo para AnimatedValue, AnimatedFloat etc.
    • Adição de um novo conjunto de APIs @Composable leves para animação entre valores (I79530).
  • Alterações interruptivas na API de ambientes. Consulte o registro e a documentação do Ambient<T> para ver detalhes (I4c7ee, b/143769776).
  • Novo modo de repetição: inverso. Esse modo reverte a iteração anterior à medida que a animação se repete em RepeatableSpec ou VectorizedRepeatableSpec (Ibe0f5).
  • Adições de API ao ManualAnimationClock: hasObservers: Boolean e dispatchOnSubscribe: Boolean de parâmetro construtor (Iaa134).
  • Adição de APIs para receber os limites mínimo/máximo em AnimatedFloat (Icd9cc).

Correções de bugs

  • runOnIdleCompose foi renomeado como runOnIdle (I83607).
  • Várias APIs de teste foram renomeadas para serem mais intuitivas. Todas as APIs findXYZ foram renomeadas como onNodeXYZ. Todas as APIs doXYZ foram renomeadas como performXYZ (I7f164).
  • Foram introduzidas APIs de animação sem estado de baixo nível. Essas APIs (I63bf7).
  • O Recompose que pode ser composto não é mais uma abstração útil. A maioria das recomposições precisa acontecer como resultado de atribuições MutableState. Para qualquer coisa além disso, é recomendável usar a função invalidate para acionar uma recomposição do escopo atual (Ifc992).
  • O uso da classe Px foi substituído em várias classes do Compose como parte do grande esforço de refatoração a fim de depender apenas de tipos primitivos e de Dp para os parâmetros de pixel. Classe Px excluída na íntegra (I3ff33).
  • O uso da classe Px foi substituído em várias classes do Compose como parte do grande esforço de refatoração a fim de depender apenas de tipos primitivos e de Dp para os parâmetros de pixel (Id3434).
  • Crossfade agora pode funcionar com nulo como valor inicial (Iad6a4, b/155947711).
  • O uso da classe Px foi substituído em várias classes do Compose como parte do grande esforço de refatoração a fim de depender apenas de tipos primitivos e de Dp para os parâmetros de pixel (I19d02).
  • Implementações consolidadas de CanvasScope para que agora exista apenas DrawScope e ContentDrawScope. CanvasScope foi renomeado como DrawScope. Atualização de DrawScope para implementar a interface de Density e fornecer LayoutDirection. Exclusão da subclasse DrawScope em ContentDrawScope. Painter e PainterModifier foram atualizados para não manter mais uma propriedade RTL porque DrawScope já fornece isso sem ser de forma manual (I1798e).
  • Atualização das APIs de composição de nível superior que expõem uma tela para expor CanvasScope. Isso elimina a necessidade dos consumidores manterem seus próprios objetos do Paint. Os consumidores que ainda precisam de acesso a uma tela podem usar o método de extensão drawCanvas, que fornece um callback para emitir comandos de desenho (I80afd).
  • Adição dos parâmetros verticalGravity e horizontalGravity a Row e Column, respectivamente (I7dc5a).
  • O módulo ui-text foi renomeado como ui-text-core (I57dec).
  • Melhora da API DrawModifier:
    • Definição do escopo do receptor para draw() ContentDrawScope.
    • Todos os parâmetros em draw() foram removidos.
    • DrawScope tem a mesma interface que o antigo CanvasScope.
    • ContentDrawScope tem o método drawContent() (Ibaced, b/152919067).
  • runOnIdleCompose e runOnUiThread agora são funções globais e não métodos em ComposeTestRule (Icbe8f).
  • [Mutable] Os operadores para delegação de propriedade de estado foram movidos para extensões compatíveis com as otimizações de delegação de propriedade do Kotlin 1.4. Autores de chamadas precisam adicionar importações para continuar usando by state { ... } ou by mutableStateOf(...) (I5312c).
  • O uso de ColoredRect foi descontinuado. Use Box(Modifier.preferredSize(width, height).drawBackground(color)) (I499fa, b/152753731).
  • Substituição de Modifier mais operador por funções de extensão de fábrica (I225e4).
  • O uso do elemento de composição Center foi descontinuado. Ele precisa ser substituído pelo modificador LayoutSize.Fill + LayoutAlign.Center ou por Box ou Stack que possam ser compostos com modificadores adequados aplicados (Idf5e0).
  • O LayoutFlexible foi renomeado como LayoutWight. O parâmetro "tight" foi renomeado como "fill" (I5977f).
  • A função que pode ser composta Opacity foi substituída pelo modificador drawOpacity (I5fb62).
  • Agora, os testes que usam AndroidComposeTestRule oferecem um relógio de animação na raiz da composição que permite que ele pause, retome e avance manualmente (Id54c5).
  • Compatibilidade com a direção direita para a esquerda no modificador LayoutPadding (I9e8da).
  • Density e DensityScope foram unidos em uma única interface. Agora você pode usar DensityAmbient.current em vez de ambientDensity(). Em vez de withDensity(density), use apenas with(density) (I11cb1).
  • Adição de métodos de cópia para vários tipos de classe inline, incluindo:
    • Offset
    • Size
    • Radius
    • Motion
    • TransformOrigin
    • O método de objeto complementar Size.copy foi descontinuado e substituído pelo método de cópia de instância (Ife290, b/159905651).
  • O androidx.composte.ViewComposer foi movido para androidx.ui.node.UiComposer. androidx.compose.Emittable foi removido. Ele era redundante com o ComponentNode. O androidx.compose.ViewAdapters foi removido. Eles não são mais um caso de uso compatível. O uso de Compose.composeInto foi descontinuado. Use setContent ou setViewContent. O uso de Compose.disposeComposition foi descontinuado. Use o método dispose no Composition retornado pelo setContent. androidx.compose.Compose.subcomposeInto foi movido para androidx.ui.core.subcomposeInto. ComponentNode#emitInsertAt foi renomeado como ComponentNode#insertAt. ComponentNode#emitRemoveAt foi renomeado como ComponentNode#removeAt. ComponentNode#emitMode foi renomeado como ComponentNode#move (Idef00).