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 adequada para seu caso de uso:
- Minha animação é mais como arte, composta por muitos 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, ou seja,
Lottie
- Sim:
- Não: ele precisa ser repetido para sempre?
- Sim:
rememberInfiniteTransition
- Não: essa é uma animação de layout?
- Sim: mudar entre vários elementos combináveis com conteúdo diferente?
- Sim: com o navigation-compose?
- Sim:
composable()
comenterTransition
eexitTransition
definidos - Não:
AnimatedContent
,Crossfade
ouPager
- Sim:
- Não: animar o aparecimento / desaparecimento?
- Sim:
AnimatedVisibility
ouanimateFloatAsState
comModifier.alpha()
- Não: tamanho da animação?
- Sim:
Modifier.animateContentSize
- Não: outra propriedade de layout? Por exemplo, deslocamento, padding etc.
- Sim: consulte "As propriedades são completamente independentes umas das outras?"
- Não: mostrar animações de itens da lista?
- Sim:
animateItemPlacement()
(reorganizar e excluir em breve)
- Sim:
- Sim:
- Sim:
- Sim: com 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: começar ao mesmo tempo?
- Sim:
updateTransition
comAnimatedVisibility
,animateFloat
,animateInt
etc - Não:
Animatable
comanimateTo
chamado com tempos diferentes (usando funções de suspensão)
- Sim:
- Sim:
- Não: a animação tem um conjunto de valores de destino predefinidos?
- Sim:
animate*AsState
, para texto, useTextMotion.Animated
- Não: animação por gestos? Sua animação é a única fonte da verdade?
- Sim:
Animatable
comanimateTo
/snapTo
- Não: animação de uma única vez 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.