아래 다이어그램은 애니메이션을 구현하는 데 사용할 API를 결정하는 데 도움이 됩니다.
아래 결정 트리 질문에 따라 사용 사례에 가장 적합한 애니메이션 API를 선택하세요.
- 애니메이션이 예술에 가깝고 여러 시각적 요소(예: SVG 또는 이미지)로 구성되어 있나요?
- 예: 간단한 SVG(예: 마이크로 애니메이션이 포함된 아이콘)를 포함하고 있나요?
- 예:
AnimatedVectorDrawable
- 아니요: 서드 파티 애니메이션 프레임워크(예:
Lottie
)
- 예:
- 아니요: 계속 반복해야 하나요?
- 예:
rememberInfiniteTransition
- 아니요: 레이아웃 애니메이션인가요?
- 예: 콘텐츠가 서로 다른 여러 컴포저블 간에 변경하나요?
- 예: navigation-compose를 사용 중인가요?
- 예:
composable()
(enterTransition
및exitTransition
)이(가) 설정됨 - 아니요:
AnimatedContent
,Crossfade
또는Pager
- 예:
- 아니요: 등장 / 사라짐에 애니메이션을 적용하나요?
- 예:
AnimatedVisibility
또는animateFloatAsState
(Modifier.alpha()
) - 아니요: 크기에 애니메이션을 적용하나요?
- 예:
Modifier.animateContentSize
- 아니요: 다른 레이아웃 속성(오프셋, 패딩 등)
- 예: '속성이 서로 완전히 독립적인가요?'를 참고하세요.
- 아니요: 목록 항목 애니메이션?
- 있음:
animateItemPlacement()
(재주문 및 삭제 예정)
- 있음:
- 예:
- 예:
- 예: navigation-compose를 사용 중인가요?
- 아니요: 여러 속성에 애니메이션을 적용해야 하나요?
- 예: 속성이 서로 완전히 독립적인가요?
- 예:
animate*AsState
, 텍스트의 경우TextMotion.Animated
사용 - 아니요: 동시에 시작할까요?
- 예: 예:
updateTransition
(AnimatedVisibility
,animateFloat
,animateInt
등 사용) - 아니요:
animateTo
가 포함된Animatable
가 다른 타이밍으로 호출되었습니다 (정지 함수 사용).
- 예: 예:
- 예:
- 아니요: 애니메이션에 사전 정의된 타겟 값 집합이 있나요?
- 예:
animate*AsState
, 텍스트의 경우TextMotion.Animated
사용 - 아니요: 동작 기반 애니메이션인가요? 애니메이션이 유일한 정보 소스인가요?
- 예:
Animatable
animateTo
/snapTo
- 아니요: 상태 관리 없이 원샷 애니메이션?
- 예:
AnimationState
또는animate
- 아니요: 여기에 답변이 없습니까? 기능 요청 제출
- 예:
- 예:
- 예:
- 예: 속성이 서로 완전히 독립적인가요?
- 예: 콘텐츠가 서로 다른 여러 컴포저블 간에 변경하나요?
- 예:
- 예: 간단한 SVG(예: 마이크로 애니메이션이 포함된 아이콘)를 포함하고 있나요?
다이어그램의 PDF 버전을 다운로드합니다.