FLUTTER ECOSYSTEM

Norbert515/dynamic_theme

번거로움 없이 동적으로 테마를 변경하세요

dynamic_theme 프로젝트 이미지
Stars
319
Forks
60
최근 푸시(UTC)
2021. 12. 20.
프로젝트 상태
활성
Norbert Kozsir GitHub avatar
GITHUB User

Norbert Kozsir ↗

Mostly Flutter these days. Love to explore new technologies though.

FlutterFlowKarlsruhe, Germany공식 웹사이트 ↗
언어DartRubyObjective-CJava

이 저장소가 배포한 패키지

사용 중인 의존성

의존성 목록 3 개
  • flutter{"sdk":"flutter"}
  • shared_preferences^2.0.5
  • flutter_test개발 의존성{"sdk":"flutter"}

원본 README

아래는 영문 원문 스냅샷입니다. 최신 내용은 GitHub에서 확인하세요.

README 펼치기 / 접기

dynamic_theme

Dynamically changing your theme without hassle

https://github.com/Norbert515/dynamic_theme/blob/master/assets/theme.png

This packages manages changing your theme during runtime and persiting that theme.

I wrote a medium post about this, check it out here!

Include in your project

dependencies:
  dynamic_theme: ^1.0.1

run packages get and import it

import 'package:dynamic_theme/dynamic_theme.dart';

if you want the dialog:

import 'package:dynamic_theme/theme_switcher_widgets.dart';

Usage

Wrap your material app like this:


class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return new DynamicTheme(
      defaultBrightness: Brightness.light,
      data: (brightness) => new ThemeData(
        primarySwatch: Colors.indigo,
        brightness: brightness,
      ),
      themedWidgetBuilder: (context, theme) {
        return new MaterialApp(
          title: 'Flutter Demo',
          theme: theme,
          home: new MyHomePage(title: 'Flutter Demo Home Page'),
        );
      }
    );
  }
}

Change the theme like this:

  void changeBrightness() {
    DynamicTheme.of(context).setBrightness(Theme.of(context).brightness == Brightness.dark? Brightness.light: Brightness.dark);
  }
  
  void changeColor() {
    DynamicTheme.of(context).setThemeData(new ThemeData(
        primaryColor: Theme.of(context).primaryColor == Colors.indigo? Colors.red: Colors.indigo
    ));
  }

When changing the brightness with setBrightness, it is additionally stored in the shared preferences.

Also included

A dialog widget to change the brightness!

https://github.com/Norbert515/dynamic_theme/blob/master/assets/dialogs.png

Getting Started

For help getting started with Flutter, view our online documentation.

For help on editing package code, view the documentation.