AnimatedCrossFade

박동규·2023년 11월 23일
0

Widgets

목록 보기
16/18

AnimatedCrossFade 위젯은 Flutter에서 두 개의 자식 간에 페이드 효과와 크기 조정 효과를 가지며 교차 페이드(cross-fade) 전환을 애니메이션으로 구현할 수 있게 해주는 위젯입니다. 이 위젯을 사용하면 한 위젯에서 다른 위젯으로 부드럽게 전환하는 UI 효과를 만들 수 있습니다.

주요 특징:

  • 두 개의 자식 위젯 (firstChildsecondChild) 사이의 전환을 애니메이션화합니다.
  • duration 매개변수를 통해 전환 애니메이션의 지속 시간을 제어할 수 있습니다.
  • crossFadeState 매개변수를 통해 두 자식 중 어느 것을 표시할지 제어합니다. 이는 CrossFadeState.showFirst 또는 CrossFadeState.showSecond 값을 가질 수 있습니다.
  • firstCurvesecondCurve는 각각 첫 번째 및 두 번째 자식의 페이드 인/아웃 애니메이션 속도 곡선을 정의합니다.
  • sizeCurve는 크기 조정 애니메이션의 속도 곡선을 정의합니다.
  • alignment은 자식들이 어떻게 정렬될지를 결정합니다.

예제 코드:

AnimatedCrossFade(
  duration: const Duration(seconds: 2),
  firstChild: const FlutterLogo(style: FlutterLogoStyle.horizontal, size: 100.0),
  secondChild: const FlutterLogo(style: FlutterLogoStyle.stacked, size: 100.0),
  crossFadeState: _first ? CrossFadeState.showFirst : CrossFadeState.showSecond,
)

이 예제에서는 AnimatedCrossFade 위젯이 두 개의 FlutterLogo 스타일 사이를 전환하는 데 사용되었습니다. _first 불린 변수가 true인 경우 첫 번째 로고가 표시되고, 그렇지 않으면 두 번째 로고가 표시됩니다. 전환은 2초 동안 지속됩니다.

사용 시 고려사항:

  • AnimatedCrossFade는 전환할 두 위젯의 크기가 다를 수 있기 때문에 전환 중에 위젯의 크기가 변할 수 있습니다.
  • 애니메이션 동안 위젯의 전체 크기가 변하는 것을 원하지 않는 경우, 자식 위젯들을 고정된 크기의 컨테이너 내부에 둘 수 있습니다.
  • AnimatedCrossFade는 주로 상태 변화에 따라 한 위젯에서 다른 위젯으로 부드럽게 전환할 때 사용됩니다.

AnimatedCrossFade는 사용자에게 시각적인 변화를 효과적으로 전달하면서도 사용자 인터페이스에 동적인 요소를 추가할 때 매우 유용한 위젯입니다.

profile
내가 원하는 것을 만들자

0개의 댓글