[flutter] DropdownButton을 사용하여 플러터 앱 테마 설정하기

안녕하세요! 이번에는 DropdownButton을 사용하여 플러터(Flutter) 앱의 테마 설정 기능을 구현하는 방법에 대해 알아보겠습니다.

목차


테마 설정 버튼 추가하기

먼저, 테마 설정을 위한 버튼을 앱의 UI에 추가해야 합니다. 예를 들어, 홈 화면의 상단 앱 바나 사이드 메뉴 등에 테마 설정 버튼을 배치할 수 있습니다.

IconButton(
  icon: Icon(Icons.settings),
  onPressed: () {
    // 테마 설정 버튼 클릭 시 처리할 로직 추가
  },
)

위와 같이 IconButton 위젯을 사용하여 테마 설정 아이콘 버튼을 만들고, onPressed 핸들러를 통해 버튼이 클릭되었을 때의 로직을 추가할 수 있습니다.

다음으로, DropdownButton을 사용하여 사용자에게 테마 선택 옵션을 제공합니다. 아래는 DropdownButton 위젯을 사용한 예시 코드입니다.

DropdownButton<String>(
  value: _selectedTheme,
  items: <String>['라이트 모드', '다크 모드'].map((String value) {
    return DropdownMenuItem<String>(
      value: value,
      child: Text(value),
    );
  }).toList(),
  onChanged: (String selectedTheme) {
    _changeTheme(selectedTheme); // 테마 변경 기능 호출
  },
)

DropdownButton 위젯을 사용하여 두 가지 테마 옵션(‘라이트 모드’와 ‘다크 모드’)을 제공하고, onChanged 핸들러를 통해 선택된 테마에 따라 테마 변경 기능을 호출합니다.

테마 변경 기능 구현하기

마지막으로, 테마 변경 기능을 구현합니다. 플러터 앱에서는 ThemeData를 사용하여 앱의 테마를 변경할 수 있습니다. 예를 들어, 테마 변경 기능을 호출하는 _changeTheme() 메서드를 작성할 수 있습니다.

void _changeTheme(String selectedTheme) {
  if (selectedTheme == '라이트 모드') {
    _applyTheme(lightTheme); // 라이트 모드 테마 적용
  } else if (selectedTheme == '다크 모드') {
    _applyTheme(darkTheme); // 다크 모드 테마 적용
  }
}

void _applyTheme(ThemeData theme) {
  // 테마를 적용하기 위한 로직 작성
}

위의 예시 코드에서는 _changeTheme() 메서드를 통해 선택된 테마에 따라 _applyTheme() 메서드를 호출하여 앱의 테마를 변경하도록 설정합니다.

플러터를 사용하면 DropdownButton을 활용하여 다양한 설정을 사용자에게 제공할 수 있으며, 이를 통해 사용자가 쉽게 테마를 변경할 수 있도록 도울 수 있습니다.

이상으로 DropdownButton을 사용하여 플러터 앱의 테마 설정 기능을 구현하는 방법에 대해 알아보았습니다. 감사합니다!


참고 문서