[flutter] CircularProgressIndicator를 사용하여 다크 모드와 라이트 모드 간에 적절하게 변경하는 방법은 무엇인가?

우선, StatefulWidget을 사용하여 빌더 메서드 안에서 현재 테마 모드를 확인합니다.

class MyLoadingWidget extends StatefulWidget {
  @override
  _MyLoadingWidgetState createState() => _MyLoadingWidgetState();
}

class _MyLoadingWidgetState extends State<MyLoadingWidget> {
  @override
  Widget build(BuildContext context) {
    ThemeData theme = Theme.of(context);
    bool isDarkMode = theme.brightness == Brightness.dark;

    return Center(
      child: CircularProgressIndicator(
        // 다크 모드일 때와 라이트 모드일 때의 색상을 조정합니다.
        valueColor: isDarkMode
            ? AlwaysStoppedAnimation<Color>(Colors.white)
            : AlwaysStoppedAnimation<Color>(Colors.blue),
      ),
    );
  }
}

이렇게 하면 CircularProgressIndicator가 현재 테마 모드에 맞게 적절하게 변경됩니다.

더 많은 정보를 원하시면 여기를 참고해 주세요.