Compose Animation
androidx.compose.animation
androidx.compose.animation.core
androidx.compose.animation.graphics
(Consulte os documentos de referência da API para todos os pacotes do Compose)
Atualização mais recente | Versão estável | Versão candidata a lançamento | Versão Beta | Versão Alfa |
---|---|---|---|---|
4 de setembro de 2024 | 1.7.0 | - | - | 1.8.0-alpha01 |
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.
Grupo | Descrição |
---|---|
compose.animation | Crie animações nos aplicativos Jetpack Compose para enriquecer a experiência do usuário. |
compose.compiler | Transforme funções @Composable e ative otimizações com um plug-in do compilador Kotlin. |
compose.foundation | Crie aplicativos do Jetpack Compose com elementos básicos prontos que podem ser usados para criar suas próprias peças de sistema de design. |
compose.material | Crie 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.material3 | Crie 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 interface do sistema. |
compose.runtime | Elementos 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.ui | Componentes 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 mais informações.
Adicione as dependências dos artefatos necessários ao arquivo build.gradle
do
seu app ou módulo:
Groovy
dependencies { implementation "androidx.compose.animation:animation:1.7.0" } android { buildFeatures { compose true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
Kotlin
dependencies { implementation("androidx.compose.animation:animation:1.7.0") } android { buildFeatures { compose = true } composeOptions { kotlinCompilerExtensionVersion = "1.5.15" } kotlinOptions { jvmTarget = "1.8" } }
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.
Consulte a documentação do Issue Tracker para saber mais.
Versão 1.8
Versão 1.8.0-alpha01
4 de setembro de 2024
Lançamento de androidx.compose.animation:animation-*:1.8.0-alpha01
. A versão 1.8.0-alpha01 contém estas confirmações.
Novos recursos
- Nova API
Modifier.animateBounds
para animar mudanças de tamanho e posição em um escopo antecipado. 94b9394 (link em inglês)
Mudanças na API
- Remoção de sinalizações experimentais em frames-chave com arcos e splines (89e1199).
Correções de bugs
- Correção de
SharedTransitionScope
que não desenhava itens em determinadas condições (b41077b6). - A lógica
placeHolderSize
foi ignorada quando nenhuma correspondência for encontrada (77c0160). - O tempo de reprodução foi definido em
AndroidFlingSpline
para evitar falhas devido ao aumento não monotônico do tempo(9d47587).
Contribuição externa
- Impedir a configuração de transição pesquisável
playTime
quando nenhuma transição estiver executando c2e6e7e6
Versão 1.7
Versão 1.7.0
4 de setembro de 2024
Lançamento de androidx.compose.animation:animation-*:1.7.0
.
Mudanças importantes desde a versão 1.6.0
Mudanças importantes na versão 1.7.0 são abordadas nesta postagem do blog (em inglês).
Novas APIs de transição de elementos compartilhados
- As novas APIs de transição de elementos compartilhados aguardam seu uso e feedback. Essas novas APIs experimentais permitem marcar layouts compartilhados na árvore de layout usando os modificadores fornecidos, produzindo limites que mudam suavemente quando um conjunto de conteúdo compartilhado sai e o outro entra. (Icb0b9).
- Novos
scaleInSharedContentToBounds
escaleOutSharedContentToBounds
para dimensionar conteúdo nosharedBounds
(I731c1). - O
SharedTransitionScope
experimental agora é uma interface em vez de uma classe. (Iaf856). - Novo
resizeModes
(ScaleToBounds
eRemeasureToBounds
) parasharedBounds
escolher entre escalonar e medir de novo. As APIsscaleIn/OutSharedContentToBounds
anteriores foram descontinuadas. (I0d41a).
Melhorias nas APIs atuais:
- Novo
Modifier.animateContentSize
, que usa um parâmetro extra para alinhamento de conteúdo personalizado. (I5623a, b/269803907). - Novo
DeferredTargetAnimation
experimental para animar tamanho, posição ou qualquer outro destino desconhecido durante a instanciação. (I60745). SeekableTransitionState
substituisnapTo()
porseekTo()
e adiciona umasnapTo()
que muda imediatamente o estado para um estado de destino sem qualquer tipo de animação.- Agora você pode transmitir um valor
periodicBias
(float) parakeyframesWithSpline
. Isso fará com que as velocidades inicial e final da spline sejam iguais. Útil para animações repetíveis usando splines. O viés indica o quanto cada velocidade (inicial e final) é modificada para atingir a periodicidade. (Ic1e6c, b/292114811).
As seguintes APIs se tornaram estáveis ou foram removidas:
AnimatedVisibilityScope.transition
agora é uma API estável. OModifier.animateEnterExit(..)
também está estável. (I6c1d1).ApproachLayoutModifierNode
eModifier.approachLayout
agora estão estáveis, com os novosisMeasurementApproachInProgress()
eisPlacementApproachInProgress()
para substituir os antigosisMeasurementApproachComplete()
eisPlacementApproachComplete()
, respectivamente.- Remoção de modificador
intermediateLayout
obsoleto (I3e91c). - As APIs
LookaheadScope
foram estáveis. (I21507).
Versão 1.7.0-rc01
21 de agosto de 2024
Lançamento de androidx.compose.animation:animation-*:1.7.0-rc01
. A versão 1.7.0-rc01 contém estas confirmações.
Versão 1.7.0-beta07
7 de agosto de 2024
Lançamento de androidx.compose.animation:animation-*:1.7.0-beta07
. A versão 1.7.0-beta07 contém estas confirmações.
Correções de bugs
- Correção de
SharedTransitionScope
, que não mostrava itens de sobreposição durante a transição em determinadas condições, que normalmente incluiriam o uso com Navigation (Id65ab, b/347520198).
Versão 1.7.0-beta06
24 de julho de 2024
Lançamento de androidx.compose.animation:animation-*:1.7.0-beta06
. A versão 1.7.0-beta06 contém estas confirmações.
Correções de bugs
- Correção do vazamento de estados de transição de
SeekableTransition
, limpando adequadamente as observações deSnapshotStateObserver
quando a transição é descartada (b9c7182). - Correção de casos extremos em que as transições filhas não eram marcadas corretamente como concluídas quando o pai é concluído (dc42216).
Versão 1.7.0-beta05
10 de julho de 2024
Lançamento de androidx.compose.animation:animation-*:1.7.0-beta05
. A versão 1.7.0-beta05 contém estas confirmações.
Correções de bugs
- A propriedade de transição
totalDurationNanos
agora pode ser lida corretamente em umsnapshotFlow
.
Versão 1.7.0-beta04
26 de junho de 2024
Lançamento de androidx.compose.animation:animation-*:1.7.0-beta04
. A versão 1.7.0-beta04 contém estas confirmações.
Versão 1.7.0-beta03
12 de junho de 2024
Lançamento de androidx.compose.animation:animation-*:1.7.0-beta03
. A versão 1.7.0-beta03 contém estas confirmações.
Versão 1.7.0-beta02
29 de maio de 2024
Lançamento de androidx.compose.animation:animation-*:1.7.0-beta02
. A versão 1.7.0-beta02 contém estas confirmações.
Versão 1.7.0-beta01
14 de maio de 2024
Lançamento de androidx.compose.animation:animation-*:1.7.0-beta01
. A versão 1.7.0-beta01 contém estas confirmações.
Mudanças na API
- Novo
resizeModes
(ScaleToBounds
eRemeasureToBounds
) parasharedBounds
escolher entre escalonar e medir de novo. As APIsscaleIn/OutSharedContentToBounds
anteriores foram descontinuadas. (I0d41a).
Contribuição externa
- O
SharedTransitionScope
experimental agora é uma interface em vez de uma classe. (Iaf856, b/338415048, b/338414702).
Versão 1.7.0-alpha08
1o de maio de 2024
Lançamento de androidx.compose.animation:animation-*:1.7.0-alpha08
. A versão 1.7.0-alpha08 contém estas confirmações.
Mudanças na API
- As APIs
LookaheadScope
foram estáveis. (I21507).
Contribuição externa
- Limpeza do tempo de início da animação após animações/capturas de
SeekableTransitionState
por Steven Schoen (1ca89529)
Versão 1.7.0-alpha07
17 de abril de 2024
Lançamento de androidx.compose.animation:animation-*:1.7.0-alpha07
. A versão 1.7.0-alpha07 contém estas confirmações.
Novos recursos
- As novas APIs de transição de elementos compartilhados aguardam seu uso e feedback. Essas novas APIs experimentais permitem marcar layouts compartilhados na árvore de layout usando os modificadores fornecidos, produzindo limites que mudam suavemente quando um conjunto de conteúdo compartilhado sai e o outro entra. (Icb0b9).
- Novos
scaleInSharedContentToBounds
escaleOutSharedContentToBounds
para dimensionar conteúdo nosharedBounds
(I731c1).
Mudanças na API
AnimatedVisibilityScope.transition
agora é uma API estável. OModifier.animateEnterExit(..)
também está estável. (I6c1d1).ApproachLayoutModifierNode
eModifier.approachLayout
agora estão estáveis, com os novosisMeasurementApproachInProgress()
eisPlacementApproachInProgress()
para substituir os antigosisMeasurementApproachComplete()
eisPlacementApproachComplete()
, respectivamente.- Remoção de modificador
intermediateLayout
obsoleto (I3e91c). - Agora você pode transmitir um valor
periodicBias
(float) parakeyframesWithSpline
. Isso fará com que as velocidades inicial e final da spline sejam iguais. Útil para animações repetíveis usando splines. O viés indica o quanto cada velocidade (inicial e final) é modificada para atingir a periodicidade. (Ic1e6c, b/292114811).
Correções de bugs
- Correção das curvas de easing de over-tiring e under-tiring que anteriormente eram limitadas a 0..1 (I38747).
Versão 1.7.0-alpha06
3 de abril de 2024
Lançamento de androidx.compose.animation:animation-*:1.7.0-alpha06
. A versão 1.7.0-alpha06 contém estas confirmações.
Novos recursos
- O suporte à animação de aparecimento e desaparecimento de itens foi adicionado a
LazyColumn
eLazyRow
. Anteriormente, era possível adicionar o modificadorModifier.animateItemPlacement()
para oferecer suporte a animações de colocação (reordenação). Descontinuamos esse modificador e introduzimos um novo modificador não experimental chamadoModifier.animateItem()
, que permite oferecer suporte aos três tipos de animação: aparência (aparecimento gradual), desaparecimento (desaparecimento) e reordenação. (I2d7f7, b/330152398, b/150812265).
Correções de bugs
- Melhor desempenho da API
updateTransition
.
Versão 1.7.0-alpha05
20 de março de 2024
Lançamento de androidx.compose.animation:animation-*:1.7.0-alpha05
. A versão 1.7.0-alpha05 contém estas confirmações.
Mudanças na API
SeekableTransitionState
substituisnapTo()
porseekTo()
e adiciona umasnapTo()
que muda imediatamente o estado para um estado de destino sem qualquer tipo de animação.
Versão 1.7.0-alpha04
6 de março de 2024
Lançamento de androidx.compose.animation:animation-*:1.7.0-alpha04
. A versão 1.7.0-alpha04 contém estas confirmações.
Mudanças na API
- Nova API
Path.reverse()
para inverter a direção de um caminho (I36348).
Versão 1.7.0-alpha03
21 de fevereiro de 2024
Lançamento de androidx.compose.animation:animation-*:1.7.0-alpha03
. A versão 1.7.0-alpha03 contém estas confirmações.
Novos recursos
- Novo
Modifier.animateContentSize
, que usa um parâmetro extra para alinhamento de conteúdo personalizado. (I5623a, b/269803907). - Novo
DeferredTargetAnimation
experimental para animar tamanho, posição ou qualquer outro destino desconhecido durante a instanciação. (I60745).
Versão 1.7.0-alpha02
7 de fevereiro de 2024
Lançamento de androidx.compose.animation:animation-*:1.7.0-alpha02
. A versão 1.7.0-alpha02 contém estas confirmações.
Correções de bugs
- Correção de compatibilidade para
KeyframesSpec
. (I2bdf3, b/322214617). - Correção de
Modifier.animateContentSize
que não era redefinido corretamente quando usado emLazyList
(I070512, b/322525716). - Correção de
IllegalStateException
emKeyframesSpec
ao usar carimbos de data/hora fora do intervalo (I341b8, b/322839811).
Versão 1.7.0-alpha01
24 de janeiro de 2024
Lançamento de androidx.compose.animation:animation-*:1.7.0-alpha01
. A versão 1.7.0-alpha01 contém estas confirmações.
Versão 1.6
Versão 1.6.8
12 de junho de 2024
Lançamento de androidx.compose.animation:animation-*:1.6.8
. A versão 1.6.8 contém estas confirmações.
Versão 1.6.7
1o de maio de 2024
Lançamento de androidx.compose.animation:animation-*:1.6.7
. A versão 1.6.7 contém estas confirmações.
Versão 1.6.6
17 de abril de 2024
Lançamento de androidx.compose.animation:animation-*:1.6.6
. Nenhuma mudança desde a versão anterior
Versão 1.6.5
3 de abril de 2024
Lançamento de androidx.compose.animation:animation-*:1.6.5
. A versão 1.6.5 contém estas confirmações.
Versão 1.6.4
20 de março de 2024
Lançamento de androidx.compose.animation:animation-*:1.6.4
. A versão 1.6.4 contém estas confirmações.
Versão 1.6.3
6 de março de 2024
Lançamento de androidx.compose.animation:animation-*:1.6.3
. A versão 1.6.3 contém estas confirmações.
Versão 1.6.2
21 de fevereiro de 2024
Lançamento de androidx.compose.animation:animation-*:1.6.2
. A versão 1.6.2 contém estas confirmações.
Versão 1.6.1
7 de fevereiro de 2024
Lançamento de androidx.compose.animation:animation-*:1.6.1
. A versão 1.6.1 contém estas confirmações.
Correções de bugs
- Correção de compatibilidade para
KeyframesSpec
. (I2bdf3, b/322214617).
Versão 1.6.0
24 de janeiro de 2024
Lançamento de androidx.compose.animation:animation-*:1.6.0
. A versão 1.6.0 contém estas confirmações.
Versão 1.6.0-rc01
10 de janeiro de 2024
Lançamento de androidx.compose.animation:animation-*:1.6.0-rc01
. A versão 1.6.0-rc01 contém estas confirmações.
Versão 1.6.0-beta03
13 de dezembro de 2023
Lançamento de androidx.compose.animation:animation-*:1.6.0-beta03
. A versão 1.6.0-beta03 contém estas confirmações.
Mudanças na API
scaleInToFitContainer
escaleOutToFitContainer
foram removidos temporariamente deAnimatedContentTransitionScope
porque precisam de lançamento Eles estarão disponíveis quando o recurso for ativado por padrão ou ativado em versões futuras.
Versão 1.6.0-beta02
29 de novembro de 2023
Lançamento de androidx.compose.animation:animation-*:1.6.0-beta02
. A versão 1.6.0-beta02 contém estas confirmações.
Versão 1.6.0-beta01
15 de novembro de 2023
Lançamento de androidx.compose.animation:animation-*:1.6.0-beta01
. A versão 1.6.0-beta01 contém estas confirmações.
Mudanças na API
ExitTransition.Hold
foi renomeado comoExitTransition.KeepUntilTransitionsFinished
para ficar mais explícito. (I1c490).- Agora é possível usar
keyframesWithSpline
para interpolar qualquer valor N-dimensional usando splines monotônicos. É particularmente útil para interpolar valores de posição, comoOffset
,IntOffset
,DpOffset
. Adicionado como API experimental.
Correções de bugs
- Foi adicionado suporte ao renderizador para "Varredura Gradiente" em
ArcLine
. (I4d5bb). - Implemente igual e hashcode para
PageSize.Fixed
. (Ie3ede, b/300134276). - Correção do problema de compatibilidade binária com a mudança do Window Inset. (Iee695).
- A camada principal do Material Design foi removida para o chip/botão do Material3, já que as microcomparações têm um desempenho melhor sem ela. (I55555).
Versão 1.6.0-alpha08
18 de outubro de 2023
Lançamento de androidx.compose.animation:animation-*:1.6.0-alpha08
. A versão 1.6.0-alpha08 contém estas confirmações.
Mudanças na API
- O uso de
KeyframesSpecConfig#with
foi descontinuado e substituído porKeyframesSpecConfig#using
, que preserva o padrão do builder. (I1d769).
Versão 1.6.0-alpha07
4 de outubro de 2023
Lançamento de androidx.compose.animation:animation-*:1.6.0-alpha07
. A versão 1.6.0-alpha07 contém estas confirmações.
Mudanças na API
- As Tabrows fixas e roláveis agora têm variantes primárias e secundárias. Eles são mapeados corretamente para a cor e o comportamento do indicador, conforme definido no Material3.
PrimaryScrollableTabRow
eSecondaryScrollableTabRow
agora expõem o estado de rolagem. (Iec8f5, b/260572337).
Versão 1.6.0-alpha06
20 de setembro de 2023
Lançamento de androidx.compose.animation:animation-*:1.6.0-alpha06
. A versão 1.6.0-alpha06 contém estas confirmações.
Versão 1.6.0-alpha05
6 de setembro de 2023
Lançamento de androidx.compose.animation:animation-*:1.6.0-alpha05
. A versão 1.6.0-alpha05 contém estas confirmações.
Mudanças na API
PathEasing
foi adicionado para permitir que um caminho arbitrário seja fornecido para uma curva de easing. (Idb4b9).
Versão 1.6.0-alpha04
23 de agosto de 2023
Lançamento de androidx.compose.animation:animation-*:1.6.0-alpha04
. A versão 1.6.0-alpha04 contém estas confirmações.
Mudanças na API
- Adição de
SeekableTransitionState
para permitir que os desenvolvedores controlem o progresso de uma transição. (I8e69d).
Versão 1.6.0-alpha03
9 de agosto de 2023
Lançamento de androidx.compose.animation:animation-*:1.6.0-alpha03
. A versão 1.6.0-alpha03 contém estas confirmações.
Mudanças na API
- Novo tipo de transição de entrada/saída que dimensiona o conteúdo com base no tamanho do contêiner de animação durante a entrada e a saída animação de saída.
LookaheadScope
A diversão e a interface de composição agora estão estáveis. (Ifb2ce).
Versão 1.6.0-alpha02
26 de julho de 2023
Lançamento de androidx.compose.animation:animation-*:1.6.0-alpha02
. A versão 1.6.0-alpha02 contém estas confirmações.
Mudanças na API
- Novo
ExitTransition.Hold
para mostrar o conteúdo de saída noAnimatedContent
até que ambos entrem e a transição de saída são concluídas. (I5984f). - Outras anotações para especificar entradas permitidas para elementos combináveis (I51109).
Versão 1.6.0-alpha01
21 de junho de 2023
Lançamento de androidx.compose.animation:animation-*:1.6.0-alpha01
. A versão 1.6.0-alpha01 contém estas confirmações.
Novos recursos
- Ative
Modifier.animateContentSize
eAnimatedVisibility
para que sejam totalmente integrados ao sistema de teste inicial, informando o tamanho do destino no lookahead.
Mudanças na API
- Nova propriedade em
IntrinsincMeasureScope
e as implementações dela (por exemplo,MeasureScope
) para indicar se a passagem de medição atual é uma transmissão antecipada. (I7a812).
Correções de bugs
- As alocações foram removidas das animações de mola. (Ie9431).
- Mudança do nome do parâmetro de valor para Enum.valueOf (Ia9b89).
- mais exceções geradas a partir de valueOf de enum (I818fe).
Versão 1.5
Versão 1.5.4
18 de outubro de 2023
Lançamento de androidx.compose.animation:animation-*:1.5.4
. A versão 1.5.4 contém estas confirmações.
Versão 1.5.3
4 de outubro de 2023
Lançamento de androidx.compose.animation:animation-*:1.5.3
. Esta versão não tem mudanças
Versão 1.5.2
27 de setembro de 2023
Lançamento de androidx.compose.animation:animation-*:1.5.2
. A versão 1.5.2 contém estas confirmações.
Versão 1.5.1
6 de setembro de 2023
Lançamento de androidx.compose.foundation:foundation-*:1.5.1
. A versão 1.5.1 contém estas confirmações.
Correções de bugs
- Correção dos campos de texto que mostravam o teclado e eram editáveis quando
readOnly
é "true" Também foi corrigido o teclado que não era mostrado quandoreadOnly
era mudado de verdadeiro para falso enquanto estava em foco (I34a19, b/246909589).
Versão 1.5.1
6 de setembro de 2023
Lançamento de androidx.compose.animation:animation-*:1.5.1
. A versão 1.5.1 contém estas confirmações.
Versão 1.5.0
9 de agosto de 2023
Lançamento de androidx.compose.animation:animation-*:1.5.0
. A versão 1.5.0 contém estas confirmações.
Versão 1.5.0-rc01
26 de julho de 2023
Lançamento de androidx.compose.animation:animation-*:1.5.0-rc01
. A versão 1.5.0-rc01 contém estas confirmações.
Correções de bugs
Correção de um problema em que chamar
.value
em um tipo de estado primitivo (comoMutableIntState
) informava um aviso de lint com uma correção inválida. A inspeção recomendará a migração para a propriedade correta. (Iba953, b/287279257).Uma inspeção opcional para recomendar a migração de chamadas
mutableStateOf()
para os tipos especializados correspondentes para primitivos está disponível. O ID do lint éAutoboxingStateCreation
. Antes, essa inspeção era ativada por padrão para todos os projetos. Para que esse aviso apareça no editor do Android Studio e nos resultados do lint do seu projeto, mude a gravidade de informativo para aviso (ou maior) declarandowarning "AutoboxingStateCreation"
dentro da configuraçãobuild.gradle
oubuild.gradle.kts
do módulo, conforme mostrado (I34f7e):android { lint { warning "AutoboxingStateCreation" } ... }
Versão 1.5.0-beta03
28 de junho de 2023
Lançamento de androidx.compose.animation:animation-*:1.5.0-beta03
. A versão 1.5.0-beta03 contém estas confirmações.
Versão 1.5.0-beta02
7 de junho de 2023
Lançamento de androidx.compose.animation:animation-*:1.5.0-beta02
. A versão 1.5.0-beta02 contém estas confirmações.
Versão 1.5.0-beta01
24 de maio de 2023
Lançamento de androidx.compose.animation:animation-*:1.5.0-beta01
. A versão 1.5.0-beta01 contém estas confirmações.
Mudanças na API
- Remoção de alocações em recomposição, animações de cores e
AndroidComposeView
(Ib2bfa).
Correções de bugs
- As alocações de animações de mola foram removidas (Ie9431).
Versão 1.5.0-alpha04
10 de maio de 2023
Lançamento de androidx.compose.animation:animation-*:1.5.0-alpha04
. A versão 1.5.0-alpha04 contém estas confirmações.
Mudanças na API
ContentKey
agora tem suporte emAnimatedContent
para permitir mais controle sobre quando a transição precisa acontecer (Ic069b).
Versão 1.5.0-alpha03
19 de abril de 2023
Lançamento de androidx.compose.animation:animation-*:1.5.0-alpha03
. A versão 1.5.0-alpha03 contém estas confirmações.
Novos recursos
- Novo comportamento padrão para
SubcomposeLayout
emLookaheadScope
. Ele permite queSubcomposeLayouts
que não têm slots condicionais (por exemplo,TabRow
,Scaffold
,BoxWithConstraints
etc.) funcionem bem com animações de verificação.
Mudanças na API
- O novo
intermediateMeasurePolicy
padrão, que reutiliza a política de medição da passagem antecipada, permite que subtiposSubcomposeLayout
sem slots condicionais, comoScaffold
,TabRow
eBoxWithConstraints
, funcionem com o lookahead por padrão. (Id84c8). - O infixo divertido foi renomeado como
togetherWith
para combinar transições de entrada e saída NovoAnimatedContentScope
como receptor para o lambda de conteúdo. (Ic39ae).
Versão 1.5.0-alpha02
5 de abril de 2023
Lançamento de androidx.compose.animation:animation-*:1.5.0-alpha02
. A versão 1.5.0-alpha02 contém estas confirmações.
Novos recursos
- Nova API experimental para oferecer suporte ao lançamento antecipado em
SubcomposeLayout
. Isso vai permitir queSubcomposeLayout
funcione corretamente em umLookaheadScope
. Em breve, haverá mais suporte imediato para subtipos específicos deSubcomposeLayout
.
Mudanças na API
- Nova API
SubcomposeLayout
, que usa uma política de medida intermediária extra para processar a lógica de medição/layout durante animações baseadas em análise antecipada. (I017d3).
Versão 1.5.0-alpha01
22 de março de 2023
Lançamento de androidx.compose.animation:animation-*:1.5.0-alpha01
. A versão 1.5.0-alpha01 contém estas confirmações.
Mudanças na API
- As APIs
AnimatedContent
agora são estáveis.AnimatedContentScope
foi renomeada comoAnimatedContentTransitionScope
.scaleIn
escaleOut
agora são APIs estáveis. (Iaf54e).
Versão 1.4
Versão 1.4.3
3 de maio de 2023
Lançamento de androidx.compose.animation:animation:1.4.3
, androidx.compose.animation:animation-core:1.4.3
e androidx.compose.animation:animation-graphics:1.4.3
sem mudanças (apenas uma promoção de versão).
Versão 1.4.2
19 de abril de 2023
Lançamento de androidx.compose.animation:animation:1.4.2
, androidx.compose.animation:animation-core:1.4.2
e androidx.compose.animation:animation-graphics:1.4.2
sem mudanças. A versão 1.4.2 contém estas confirmações.
Versão 1.4.1
5 de abril de 2023
Lançamento de androidx.compose.animation:animation:1.4.1
, androidx.compose.animation:animation-core:1.4.1
e androidx.compose.animation:animation-graphics:1.4.1
sem mudanças. A versão 1.4.1 contém estas confirmações.
Versão 1.4.0
22 de março de 2023
Lançamento de androidx.compose.animation:animation:1.4.0
, androidx.compose.animation:animation-core:1.4.0
e androidx.compose.animation:animation-graphics:1.4.0
. A versão 1.4.0 contém estas confirmações.
Mudanças importantes desde a versão 1.3.0
- O identificador de ferramentas tem suporte em r
ememberInfiniteTransition
e em todas as funções de extensão emInfiniteTransition
e Transition (por exemplo,InfiniteTransition#animateColor
) (I56ef7).
Versão 1.4.0-rc01
8 de março de 2023
Lançamento de androidx.compose.animation:animation:1.4.0-rc01
, androidx.compose.animation:animation-core:1.4.0-rc01
e androidx.compose.animation:animation-graphics:1.4.0-rc01
sem mudanças. A versão 1.4.0-rc01 contém estas confirmações.
Versão 1.4.0-beta02
22 de fevereiro de 2023
Lançamento de androidx.compose.animation:animation:1.4.0-beta02
, androidx.compose.animation:animation-core:1.4.0-beta02
e androidx.compose.animation:animation-graphics:1.4.0-beta02
sem mudanças. A versão 1.4.0-beta02 contém estas confirmações.
Versão 1.4.0-beta01
8 de fevereiro de 2023
Lançamento de androidx.compose.animation:animation:1.4.0-beta01
, androidx.compose.animation:animation-core:1.4.0-beta01
e androidx.compose.animation:animation-graphics:1.4.0-beta01
sem mudanças. A versão 1.4.0-beta01 contém estas confirmações.
Versão 1.4.0-alpha05
25 de janeiro de 2023
Lançamento de androidx.compose.animation:animation:1.4.0-alpha05
, androidx.compose.animation:animation-core:1.4.0-alpha05
e androidx.compose.animation:animation-graphics:1.4.0-alpha05
. A versão 1.4.0-alpha05 contém estas confirmações.
Mudanças
- Nenhuma mudança nas bibliotecas de animação desde a última versão Alfa, apenas no nível da versão.
Versão 1.4.0-alpha04
11 de janeiro de 2023
Lançamento de androidx.compose.animation:animation:1.4.0-alpha04
, androidx.compose.animation:animation-core:1.4.0-alpha04
e androidx.compose.animation:animation-graphics:1.4.0-alpha04
. A versão 1.4.0-alpha04 contém estas confirmações.
Novos recursos
- O identificador de ferramentas pode ser usado com a
rememberInfiniteTransition
e todas as funções de extensão naInfiniteTransition
eTransition
, comoInfiniteTransition#animateColor
(I56ef7).
Mudanças na API
- As APIs
InfiniteTransition#TransitionAnimationState
eInfiniteTransition#animations
agora são públicas (I36682).
Versão 1.4.0-alpha03
7 de dezembro de 2022
Lançamento de androidx.compose.animation:animation:1.4.0-alpha03
, androidx.compose.animation:animation-core:1.4.0-alpha03
e androidx.compose.animation:animation-graphics:1.4.0-alpha03
. A versão 1.4.0-alpha03 contém estas confirmações.
Mudanças na API
- Em testes de interface que usam uma regra do Compose, as continuações retomadas durante callbacks
withFrameNanos
não serão enviadas até que todos os callbacks de frames sejam executados. Esse é o mesmo comportamento que o Compose apresenta quando é executado normalmente. No entanto, testes que dependem do comportamento antigo podem falhar. Isso só afeta o código que chamawithFrameNanos
ouwithFrameMillis
diretamente e tem uma lógica fora dos callbacks que é transmitida para essas funções e pode precisar ser movida para dentro deles. Exemplos de mudanças em testes de animação estão disponíveis neste CL (link em inglês). - Foi adicionado o parâmetro opcional
onPerformTraversals: (Long) -> Unit
ao construtorTestMonotonicFrameClock
e à função de fábrica para executar o código depois de callbackswithFrameNanos
, mas antes de retomar as corrotinas dos autores das chamadas (Idb413, b/254115946, b/222093277, b/255802670). - Novo parâmetro em
AnimatedContent
para o identificador de ferramentas (Iebe2d).
Versão 1.4.0-alpha02
9 de novembro de 2022
Lançamento de androidx.compose.animation:animation:1.4.0-alpha02
, androidx.compose.animation:animation-core:1.4.0-alpha02
e androidx.compose.animation:animation-graphics:1.4.0-alpha02
. A versão 1.4.0-alpha02 contém estas confirmações.
Mudanças na API
- Adição do
ToolingState
para permitir que as ferramentas mudem os estados internos do elemento combinável (Ie6614).
Versão 1.4.0-alpha01
24 de outubro de 2022
Lançamento de androidx.compose.animation:animation:1.4.0-alpha01
, androidx.compose.animation:animation-core:1.4.0-alpha01
e androidx.compose.animation:animation-graphics:1.4.0-alpha01
. A versão 1.4.0-alpha01 contém estas confirmações.
Correções de bugs
- A animação de interrupção no AnimatedContent foi corrigida (b/238662479).
Versão 1.3
Versão 1.3.3
11 de janeiro de 2023
Lançamento de androidx.compose.animation:animation:1.3.3
, androidx.compose.animation:animation-core:1.3.3
e androidx.compose.animation:animation-graphics:1.3.3
. A versão 1.3.3 contém estas confirmações.
- Nenhuma mudança desde a versão 1.3.2.
Versão 1.3.2
7 de dezembro de 2022
Lançamento de androidx.compose.animation:animation:1.3.2
, androidx.compose.animation:animation-core:1.3.2
e androidx.compose.animation:animation-graphics:1.3.2
. A versão 1.3.2 contém estas confirmações.
Correções de bugs
- Atualização para compatibilidade com androidx.compose.ui 1.3.2.
Versão 1.3.1
9 de novembro de 2022
Lançamento de androidx.compose.animation:animation:1.3.1
, androidx.compose.animation:animation-core:1.3.1
e androidx.compose.animation:animation-graphics:1.3.1
. A versão 1.3.1 contém estas confirmações.
Versão 1.3.0
24 de outubro de 2022
Lançamento de androidx.compose.animation:animation:1.3.0
, androidx.compose.animation:animation-core:1.3.0
e androidx.compose.animation:animation-graphics:1.3.0
. A versão 1.3.0 contém estas confirmações.
Mudanças importantes desde a versão 1.2.0
- O novo conjunto de funções de easing é estável.
Versão 1.3.0-rc01
5 de outubro de 2022
Lançamento de androidx.compose.animation:animation:1.3.0-rc01
, androidx.compose.animation:animation-core:1.3.0-rc01
e androidx.compose.animation:animation-graphics:1.3.0-rc01
. A versão 1.3.0-rc01 contém estas confirmações.
Versão 1.3.0-beta03
21 de setembro de 2022
Lançamento de androidx.compose.animation:animation:1.3.0-beta03
, androidx.compose.animation:animation-core:1.3.0-beta03
e androidx.compose.animation:animation-graphics:1.3.0-beta03
. A versão 1.3.0-beta03 contém estas confirmações.
- Nenhuma mudança desde a versão 1.3.0-beta02.
Versão 1.3.0-beta02
7 de setembro de 2022
Lançamento de androidx.compose.animation:animation:1.3.0-beta02
, androidx.compose.animation:animation-core:1.3.0-beta02
e androidx.compose.animation:animation-graphics:1.3.0-beta02
. A versão 1.3.0-beta02 contém estas confirmações.
- O Kotlin.experimental foi removido das opções do compilador porque foi descontinuado.
Versão 1.3.0-beta01
24 de agosto de 2022
Lançamento de androidx.compose.animation:animation:1.3.0-beta01
, androidx.compose.animation:animation-core:1.3.0-beta01
e androidx.compose.animation:animation-graphics:1.3.0-beta01
. A versão 1.3.0-beta01 contém estas confirmações.
Versão 1.3.0-alpha03
10 de agosto de 2022
Lançamento de androidx.compose.animation:animation:1.3.0-alpha03
, androidx.compose.animation:animation-core:1.3.0-alpha03
e androidx.compose.animation:animation-graphics:1.3.0-alpha03
. A versão 1.3.0-alpha03 contém estas confirmações.
Mudanças na API
- Novo parâmetro em
Crossfade
,animateAsState
eAnimatable
para o identificador de ferramentas (Iac08a). - Adicionamos a função
atFraction
para definir frames-chave em uma fração em vez de uma duração específica (I20c76, b/232059455).
Versão 1.3.0-alpha02
27 de julho de 2022
Lançamento de androidx.compose.animation:animation:1.3.0-alpha02
, androidx.compose.animation:animation-core:1.3.0-alpha02
e androidx.compose.animation:animation-graphics:1.3.0-alpha02
. A versão 1.3.0-alpha02 contém estas confirmações.
Versão 1.3.0-alpha01
29 de junho de 2022
Lançamento de androidx.compose.animation:animation:1.3.0-alpha01
, androidx.compose.animation:animation-core:1.3.0-alpha01
e androidx.compose.animation:animation-graphics:1.3.0-alpha01
. A versão 1.3.0-alpha01 contém estas confirmações.
Mudanças na API
- Novo
LookaheadLayout
que permite a pré-visualização antes da medição ou layout finais. Isso possibilita um pré-cálculo do layout quando há mudanças, permitindo que a medição ou o layout pós-visualização usem o tamanho ou a posição pré-calculados para animar o tamanho e as posições de acordo com a segmentação. Ainda não é possível usarSubcomposeLayouts
, mas isso será oferecido em uma versão futura (I477f5).
Versão 1.2
Versão 1.2.1
10 de agosto de 2022
Lançamento de androidx.compose.animation:animation:1.2.1
, androidx.compose.animation:animation-core:1.2.1
e androidx.compose.animation:animation-graphics:1.2.1
. A versão 1.2.1 contém estas confirmações.
Versão 1.2.0
27 de julho de 2022
Lançamento de androidx.compose.animation:animation:1.2.0
, androidx.compose.animation:animation-core:1.2.0
e androidx.compose.animation:animation-graphics:1.2.0
. A versão 1.2.0 contém estas confirmações.
Mudanças importantes desde a 1.1.0
- A animação do Compose agora permite a configuração "Escala de duração do Animator" das Opções do desenvolvedor.
- Grande seleção de novas curvas de easing experimental.
- A classe
AnimatedImageVector
agora é compatível comrepeatCount
erepeatMode
.
Versão 1.2.0-rc03
29 de junho de 2022
Lançamento de androidx.compose.animation:animation:1.2.0-rc03
, androidx.compose.animation:animation-core:1.2.0-rc03
e androidx.compose.animation:animation-graphics:1.2.0-rc03
. A versão 1.2.0-rc03 contém estas confirmações.
- Nenhuma mudança desde a versão 1.2.0-rc02.
Versão 1.2.0-rc02
22 de junho de 2022
Lançamento de androidx.compose.animation:animation:1.2.0-rc02
, androidx.compose.animation:animation-core:1.2.0-rc02
e androidx.compose.animation:animation-graphics:1.2.0-rc02
. A versão 1.2.0-rc02 contém estas confirmações.
Correções de bugs
- A anotação
ExperimentalEasingApi
foi removida das funções de easing (Ied441).
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 é compatível comrepeatCount
erepeatMode
(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 e permite o 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
- As APIs de gráficos vetoriais foram atualizadas para usar a anotação combinável
@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 permite 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 deanimatedVectorResource
para carregar um arquivo de recurso<animated-vector>
.- Use
rememberAnimatedVectorResource
em vez deAnimatedImageVector#painterFor
para renderizar umAnimatedImageVector
(I9c300).
- Use
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
emandroidx.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
- Versão estável do efeito de rolagem do Android 12.
- Melhorias no dimensionamento da área de toque.
- Em relação ao Compose 1.0, os componentes do Material Design vão aumentar o espaço de layout para atender ao 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 interface usando os componentes do Compose Material, os requisitos mínimos para a acessibilidade da área de toque sejam atendidos.
- Versão estável da coluna de navegação.
- Upgrade de várias APIs anteriormente experimentais para a versão estável.
- Compatibilidade com 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 de compatibilidade com o 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 deanimatedVectorResource
para carregar um arquivo de recurso<animated-vector>
.- Use
rememberAnimatedVectorResource
em vez deAnimatedImageVector#painterFor
para renderizar umAnimatedImageVector
(I9c300).
- Use
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
- Foi adicionada compatibilidade com o 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).
Compatibilidade com 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 compatíveis com as 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 compatíveis com as 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 APIsAnimatedVisibility
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 Kotlin1.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
- A classe StartOffset agora permite usar anotações repeatable 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óduloandroidx.compose.animation:animation-graphics
(I60873).
Correções de bugs
- A
InfiniteAnimationPolicy
foi movida para :compose:ui (I5eb09, b/160602714).
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 aceitar a 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 AGP7.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 paraandroidx.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 elemento combinável
AnimatedContent
. Ele gerencia a mudança de conteúdo usandoContentTransform
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, usecomposeTestRule.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óriosrc/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 é usado junto comadb 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 tem o seguinte padrão:
<FLAGS><CLASS_DESCRIPTOR>-><METHOD_SIGNATURE>
E uma regra de classe tem o seguinte padrão:
<CLASS_DESCRIPTOR>
Aqui,
<FLAGS>
é um ou mais dos caracteresH
,S
eP
, 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 classeandroidx.compose.runtime.SlotTable
teria o descritorLandroidx/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étodofun isPlaced(): Boolean
emLayoutNode
tem a assinaturaisPlaced()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 flag
H
indica que ele é um método "hot" (frequente) e precisa ser compilado com antecedência.Um método com a flag
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 flag
P
indica que ele é chamado após a inicialização.A presença de uma classe 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
edetectHorizontalGestures
vão consumir 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 umMutableTransitionState
. Isso também permite que os estados da animação sejam observados externamente àAnimatedVisibility
pelocurrentState
eisIdle
.- Compatibilidade com a nova transição filha em Transition.
- Compatibilidade com a 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.
- Descontinuaçã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
eBoxWithConstraintsScope
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 comoButton
eModifier.clickable()
, useinteractionSource = 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).
- Os pacotes de métodos smoothScrollBy e scrollBy foram mudados 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.preferredWidth/preferredHeight/preferredSize 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 uma 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 }
combinável e passamos a promover o uso comoremember { mutableStateOf(0) }
, vamos remover osavedInstanceState { 0 }
de composição. UserememberSaveable { 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 vai precisar usar uma nova sobrecarga de rememberSaveable, que tem o parâmetrostateSaver
. 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 pressIndicationGestureFilter foi descontinuado. Use Modifier.clickable ou Modifier.pointerInput com a função detectTapGestures (I6baf9, b/175294473).
- Foi introduzido um elemento de
contexto de corrotina
InfiniteAnimationPolicy
que vai ser aplicado em animações infinitas. Por padrão, nenhuma política é instalada, exceto durante a execução de testes comComposeTestRule
(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. A interface MonotonicFrameClock agora pode ser encontrada em compose:runtime, e a classe AndroidUiDispatcher pode ser encontrada em compose:ui (Ib5c36).
- Foram adicionados
Animation.isInfinite
eVectorizedAnimationSpec.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).
- As interfaces de parâmetro com estado do Material Design foram alteradas para terem funções combináveis 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 já pode ser usado (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 vão ser substituídos por milissegundos Long, e essa etapa vai 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)
eitemsIndexed(items: List)
são funções de extensão, então precisam ser importadas manualmente quando são usadas. Novas sobrecargas de extensão para Arrays: items(items: Array) e itemsIndexed(Array) (I803fc, b/175562574). - Use TestCoroutineDispatcher nos testes (I532b6).
- PointerInputData foi removido, e PointerInputChange foi modificado 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).- Position foi renomeado como DpOffset e getDistance() foi removido (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 compatível com animação de redução multidimensional (I820f2, b/168014930). animate()
agora é substituído poranimateAsState()
, que retorna umState<T>
em vez deT
. Isso permite uma performance 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 VectorConverters antigos foram descontinuados (If0c4b).
- Foi introduzido 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).
- O uso de LazyColumnFor, LazyRowFor, LazyColumnForIndexed e LazyRowForIndexed foi descontinuado. 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).
- A anotação de ExperimentalPointerInput foi removida (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
- Uma verificação de lint foi adicionada para posicionamento e nomeação do parâmetro lambda combinável, para conferir a consistência com as diretrizes do Compose.
Também ocorreu a migração de algumas APIs usando
children
como o nome da lambda final paracontent
, de acordo com a verificação e as orientações do lint (Iec48e). - As APIs descontinuadas foram removidas:
Modifier.onPositioned
foi removido. UseModifier.onGloballyPositioned
.Modifier.onDraw
foi removido. UseModifier.onDrawBehind
.Modifier.plus
foi removido. UseModifier.then
.Color.Unset
foi removido. UseColor.Unspecified
.- A classe
PxBounds
foi removida. UseRect
. - (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 comoRestorableStateProvider
(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 dos elementos 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 o Material Design, crie seus próprios ambientes de temas específicos do sistema de design que possam ser consumidos nos seus componentes (I74acc, b/172067770).
- O uso de 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
- rootAnimationClockFactory, transitionEnabled, blinkingCursorEnabled e textInputServiceFactory foram anotadas 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.
- Os métodos Rect.expandToInclude e Rect.join foram removidos.
- Documentação do Radius atualizada para informar oval, além de elíptico.
- Foi adicionada documentação para indicar que o construtor público da classe Radius in-line não pode 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.
- O construtor RoundRect foi atualizado para consumir propriedades do Radius em vez de parâmetros individuais para valores de raio x/y.
- As APIs Size, que pressupunham ser um retângulo com origem em 0,0, foram removidas.
- 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 vai ser descontinuado e substituído pelo novo Box em compose.foundation.layout. O comportamento do novo Box quando tem vários filhos é os empilhar um em cima do outro. Isso é diferente do Box anterior, que se comportava de maneira semelhante à Column (I94893, b/167680279).
- O uso de parâmetros de decoração do Box foi descontinuado. 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
ManualFrameClock.hasAwaiters
foi adicionado para conferir se algo está aguardando um frame desse clock,runWithManualClock
como uma substituição derunBlocking
ao executar testes que precisam de um ManualFrameClock eTestUiDispatcher.Main
que fornece acesso fácil ao principal agente de interface 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") } }
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).
O elemento combinável AnimatedVisibilty anima o aparecimento e o desaparecimento do conteúdo filho.
EnterTransition e ExitTransition foram introduzidos para trabalhar com o elemento combinável AnimatedVisibilty e fornecer três tipos diferentes de animação de aparecimento e desaparecimento: esmaecer, deslizar e aumentar/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 comoPlacementScope.place()
, e oPlacementScope.place()
anterior foi renomeado comoPlacementScope.placeRelative()
. Por essa razão, o métodoPlacementScope.place()
não espelhará de forma automática a posição em contextos da direita para a esquerda. Se você quiser o espelhamento, usePlacementScope.placeRelative()
(I873ac, b/162916675).- O uso do elemento combinável
state { ... }
foi descontinuado e substituído pelas chamadas explícitas deremember { 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ãoby 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 umAnimationClockObservable
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 deManualAnimationClock
agora éManualFrameClock
(I111c7, b/161247083).
Correções de bugs
- As APIs para o modo de leitura da direita para a esquerda foram atualizadas. 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).
- Use AnimationSpec em vez de AnimationBuilder nas APIs
de nível superior para esclarecer o conceito de especificação de animação estática.
- A DSL de transição foi aprimorada com a remoção do requisito de lambda para criar AnimationSpecs, como Tween e 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.
- Mudança na duração e no atraso de KeyFrames e Tween para Int. Isso elimina as transmissões desnecessárias e a sobrecarga de métodos (para aceitar os 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 inline para usar um valor 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 para depender apenas de tipos primitivos e de Dp para os parâmetros de pixel (I086f4).
- 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. As classes AnimatedValue e AnimatedFloat foram reestruturadas 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.
- Um novo conjunto de APIs @Composable leves foi adicionado para animação entre valores (I79530).
- Alterações interruptivas na API de ambientes. Consulte o registro e a documentação do
Ambient<T>
para descobrir mais 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
edispatchOnSubscribe: Boolean
de parâmetro construtor (Iaa134). - APIs foram adicionadas para receber os limites mínimo/máximo em AnimatedFloat (Icd9cc).
Correções de bugs
runOnIdleCompose
foi renomeado comorunOnIdle
(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 elemento combinável Recompose 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 para 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 para 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 para depender apenas de tipos primitivos e de Dp para os parâmetros de pixel (I19d02).
- As implementações de CanvasScope foram consolidadas para que agora exista apenas DrawScope e ContentDrawScope. CanvasScope foi renomeado como DrawScope. DrawScope foi atualizado para implementar a interface de Density e fornecer LayoutDirection. A subclasse DrawScope foi excluída 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).
- As APIs combináveis de nível superior foram atualizadas. Em vez de expor Canvas, elas agora expõem CanvasScope. Isso elimina a necessidade dos consumidores manterem seus próprios objetos do Paint. Os consumidores que ainda precisam de acesso a um Canvas 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:
- O escopo do receptor para draw() agora é 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
erunOnUiThread
agora são funções globais e não métodos em ComposeTestRule (Icbe8f).- Os operadores para delegação de propriedade [Mutable]State foram movidos para extensões
que permitem otimizações de delegação de propriedade do Kotlin 1.4. Autores de chamadas precisam adicionar
importações para continuar usando
by state { ... }
ouby mutableStateOf(...)
(I5312c). - O uso de ColoredRect foi descontinuado. Use
Box(Modifier.preferredSize(width, height).drawBackground(color))
(I499fa, b/152753731). - O Modifier e o operador foram substituídos por funções de extensão de fábrica (I225e4).
- O uso do elemento combinável Center foi descontinuado. Ele precisa ser substituído pelo modificador LayoutSize.Fill + LayoutAlign.Center ou por elementos combináveis Box ou Stack com modificadores adequados aplicados (Idf5e0).
- O LayoutFlexible foi renomeado como LayoutWeight. O parâmetro "tight" foi renomeado como "fill" (If4738).
- A função combinável 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 da 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).
- Métodos de cópia foram adicionados a 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 estão mais disponíveis.
O uso de Compose.composeInto foi descontinuado. Use
setContent
ousetViewContent
. O uso de Compose.disposeComposition foi descontinuado. Use o métododispose
noComposition
retornado pelosetContent
. 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).