O diagrama abaixo ajuda você a decidir qual API usar ao implementar sua animação.
Siga as perguntas da árvore de decisão abaixo para escolher qual API de animação é mais apropriada para seu caso de uso:
- Minha animação é mais parecida com a arte, com vários elementos visuais? Por exemplo, SVGs ou imagens
- Sim.Ele tem SVGs simples? Por exemplo, um ícone com microanimações.
- Sim:
AnimatedVectorDrawable
- Não: framework de animação de terceiros, por exemplo,
Lottie
.
- Sim:
- Não: ele precisa se repetir para sempre?
- Sim:
rememberInfiniteTransition
- Não: é uma animação de layout?
- Sim: mudar entre vários elementos combináveis com conteúdo diferente?
- Sim: usando o Navigation-compose?
- Sim:
composable()
comenterTransition
eexitTransition
definidos - Não:
AnimatedContent
,Crossfade
ouPager
- Sim:
- Não: animar aparecimento / desaparecimento?
- Sim:
AnimatedVisibility
ouanimateFloatAsState
comModifier.alpha()
- Não: animando tamanho?
- Sim:
Modifier.animateContentSize
- Não: outra propriedade de layout? Ou seja, deslocamento, padding etc.
- Sim: consulte "As propriedades são completamente independentes umas das outras?"
- Não: animações de itens de lista?
- Sim:
animateItemPlacement()
(reordenar e excluir em breve)
- Sim:
- Sim:
- Sim:
- Sim: usando o Navigation-compose?
- Não: você precisa animar várias propriedades?
- Sim: as propriedades são completamente independentes umas das outras?
- Sim:
animate*AsState
, para texto, useTextMotion.Animated
- Não: iniciar ao mesmo tempo?
- Sim: Sim:
updateTransition
comAnimatedVisibility
,animateFloat
,animateInt
etc. - Não:
Animatable
comanimateTo
chamado com tempos diferentes (usando funções de suspensão).
- Sim: Sim:
- Sim:
- Não: a animação tem um conjunto de valores de segmentação predefinidos?
- Sim:
animate*AsState
, para texto, useTextMotion.Animated
- Não: animação orientada por gestos? Sua animação é a única fonte de verdade?
- Sim:
Animatable
comanimateTo
/snapTo
- Não: animação de uma tomada sem gerenciamento de estado?
- Sim:
AnimationState
ouanimate
- Não. A resposta não está aqui? Enviar uma solicitação de recurso
- Sim:
- Sim:
- Sim:
- Sim: as propriedades são completamente independentes umas das outras?
- Sim: mudar entre vários elementos combináveis com conteúdo diferente?
- Sim:
- Sim.Ele tem SVGs simples? Por exemplo, um ícone com microanimações.
Faça o download da versão em PDF do diagrama.