[flutter] CircularProgressIndicator의 원사이즈를 동적으로 변경하는 방법은 무엇인가?

우선, CircularProgressIndicator 위젯을 만들고, 이를 크기를 동적으로 변경할 수 있는 StatefulWidget에 포함시킵니다.

import 'package:flutter/material.dart';

class DynamicCircularProgressIndicator extends StatefulWidget {
  @override
  _DynamicCircularProgressIndicatorState createState() => _DynamicCircularProgressIndicatorState();
}

class _DynamicCircularProgressIndicatorState extends State<DynamicCircularProgressIndicator> {
  double _indicatorSize = 50.0;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            CircularProgressIndicator(
              valueColor: AlwaysStoppedAnimation<Color>(Colors.blue),
              strokeWidth: 5,
              value: 0.5,
              backgroundColor: Colors.grey,
              semanticsLabel: 'Loading',
              semanticsValue: 'Loading',
              // 동적으로 변경되는 크기값 적용
              // 아래 크기는 예제일 뿐, 프로젝트에 맞게 원하는 크리값을 적용할 것
              // _indicatorSize의 값을 조절하여 크기를 변경
              valueSize: _indicatorSize,
            ),
            SizedBox(
              height: 20,
            ),
            RaisedButton(
              onPressed: () {
                setState(() {
                  // Example: 크기를 클릭할 때마다 20 증가
                  _indicatorSize += 20;
                });
              },
              child: Text('Increase Size'),
            ),
          ],
        ),
      ),
    );
  }
}

위의 코드는 CircularProgressIndicator를 동적으로 변경할 수 있는 StatefulWidget을 구현한 것입니다. CircularProgressIndicator 위젯의 valueSize 속성을 사용하여 크기를 동적으로 조절할 수 있습니다. onPressed 콜백에서 setState를 호출하여 _indicatorSize 값을 조절하여 크기를 변경하였습니다.

참고문헌: