CircularProgressIndicator는 주로 작업 진행 상태를 표시하는 데 사용됩니다. 하지만 이 위젯을 활용하여 더 다양한 시각적 효과를 구현할 수 있습니다. 이번 포스트에서는 CircularProgressIndicator의 고급 사용법에 대해 알아보겠습니다.
1. 커스텀 CircularProgressIndicator 디자인
일반적으로 CircularProgressIndicator는 회전하는 효과를 주기 위해 사용됩니다. 그러나 이를 통해 커스텀 디자인을 구현할 수 있습니다. 예를 들어, 선 두께나 색상을 변경하여 CircularProgressIndicator를 원하는 디자인으로 만들 수 있습니다.
Container(
width: 50,
height: 50,
child: CircularProgressIndicator(
strokeWidth: 5, // 두께 조절
valueColor: AlwaysStoppedAnimation<Color>(Colors.red), // 색상 조절
),
),
2. CircularProgressIndicator에 애니메이션 추가
CircularProgressIndicator에 다양한 애니메이션 효과를 추가하여 보다 동적인 디자인을 구현할 수 있습니다. 예를 들어, ScaleTransition을 사용하여 크기가 변하는 애니메이션 효과를 줄 수 있습니다.
Container(
width: 50,
height: 50,
child: CircularProgressIndicator(
value: null, // null로 설정하여 전체 동그라미를 그립니다.
strokeWidth: 5,
valueColor: AlwaysStoppedAnimation<Color>(Colors.blue),
),
),
3. CircularProgressIndicator의 외형 커스터마이징
CircularProgressIndicator의 외형을 커스터마이징하여 다양한 디자인을 구현할 수 있습니다. 예를 들어, BoxShape.circle을 사용하여 원형이 아닌 다른 모양의 Indicator를 만들 수 있습니다.
Container(
width: 50,
height: 50,
decoration: BoxDecoration(
shape: BoxShape.circle,
color: Colors.transparent,
border: Border.all(
color: Colors.green,
width: 4,
),
),
child: CircularProgressIndicator(
strokeWidth: 0, // 기본 Indicator 숨김
),
),
4. CircularProgressIndicator의 사용자 정의
선언적으로 사용하고 있는 CircularProgressIndicator를 코드로 직접 정의하여, 보다 다양한 기능을 구현할 수 있습니다. 이를 통해 다양한 애니메이션을 표현하거나 사용자 상호작용에 반응하는 Indicator를 만들 수 있습니다.
class CustomCircularProgressIndicator extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Container(
width: 50,
height: 50,
child: RotationTransition(
turns: AlwaysStoppedAnimation(0.25), // 회전 애니메이션 추가
child: CircularProgressIndicator(
strokeWidth: 5,
valueColor: AlwaysStoppedAnimation<Color>(Colors.purple),
),
),
);
}
}
이렇게해서 현재까지 CircularProgressIndicator의 고급 사용법에 대해 알아보았습니다. 추가로 궁금한 점이 있으면 언제든지 물어봐주세요!