[flutter] cupertino_icons를 통해 아이콘의 뒷배경 설정하기

Flutter에서는 cupertino_icons 패키지를 사용하여 iOS 스타일의 아이콘을 쉽게 사용할 수 있습니다. 하지만 기본적으로 제공되는 아이콘에는 뒷배경을 설정하는 옵션이 없습니다. 이번 글에서는 cupertino_icons를 사용하여 아이콘의 뒷배경을 설정하는 방법을 알아보겠습니다.

구현 방법

cupertino_icons 패키지는 iOS 스타일의 아이콘들을 미리 정의해 놓은 것입니다. 이 패키지의 아이콘을 사용하기 위해서는 먼저 pubspec.yaml 파일에 cupertino_icons 의존성을 추가해야 합니다.

dependencies:
  flutter:
    sdk: flutter
  cupertino_icons: ^1.0.2

그리고 pubspec.yaml 파일을 저장한 후, 터미널에서 flutter pub get 명령어를 실행하여 패키지를 다운로드 받습니다.

cupertino_icons 패키지에서 제공하는 아이콘은 기본적으로 배경이 투명하도록 디자인되어 있습니다. 따라서 아이콘의 배경을 설정하기 위해서는 Container 위젯과 같은 배경을 가진 위젯으로 아이콘을 감싸주어야 합니다.

import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter/cupertino_icons.dart';

class MyPage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: CupertinoNavigationBar(
        middle: Text('아이콘 설정 예제'),
      ),
      body: Center(
        child: Container(
          color: Colors.blue, // 배경색 설정
          child: CupertinoButton(
            padding: EdgeInsets.all(16),
            child: Icon(
              CupertinoIcons.home,
              color: Colors.white, // 아이콘 색상 설정
            ),
            onPressed: () {
              // 버튼 클릭 시 동작
            },
          ),
        ),
      ),
    );
  }
}

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: MyPage(),
      theme: ThemeData(
        cupertinoOverrideTheme: CupertinoThemeData(
          brightness: Brightness.light,
        ),
      ),
    );
  }
}

위의 코드에서 Container 위젯을 사용하여 배경색을 설정하고, CupertinoButton 위젯으로 아이콘을 감싸주었습니다. 이 때, CupertinoButton 위젯의 color 속성을 통해 아이콘의 색상을 설정할 수 있습니다.