搜尋分類、套件與程式碼儲存庫

套件詳情v1.0.1

dynamic_theme

在執行時變更主題,同時在重新啟動之間保留亮度設定

近 30 天下載
875
喜歡數
136
Pub 分數
40

安裝套件

flutter pub add dynamic_theme

套件介紹

根據套件公開資料產生的選型評估,僅供參考。

Dynamic Theme 是一個 Flutter 套件,可實現執行時主題切換,讓使用者能無縫地在明亮與黑暗模式之間切換。它會自動在應用程式重新啟動後保留亮度設定,確保一致的使用者體驗。此套件可輕鬆整合至 MaterialApp,並提供簡單的 API 來動態更新主題。非常適合希望提供可自訂外觀選項,而不需完整重構應用程式的應用。

適用情境

  • 執行時主題切換
  • 重啟後保留使用者偏好
  • 在行動應用程式中支援深色模式
  • 即時自定義UI外觀
  • 透過主題彈性增強可存取性

主要特色

  • 即時主題更新
  • 自動亮度持久性
  • 與 MaterialApp 的簡單整合
  • 支援淺色和深色模式
  • 最小的樣板程式碼

適合對象

  • 需要動態主題的應用
  • 開發者優先考慮使用者體驗
  • 支援暗色模式的專案
  • 跨平台移動應用
  • 可自定義使用者介面的應用程式

使用建議

  • 僅限亮度和主題變更
  • 不支援超出內建的自訂主題類型
  • 需要手動處理主題特定的資源
  • 不適合複雜的主題系統
  • 依賴 MaterialApp 以獲得完整功能

原始 README

以下為關聯原始碼儲存庫的 README 原文快照,最新內容請造訪原始碼儲存庫。

dynamic_theme

Dynamically changing your theme without hassle

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!

Getting Started

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

For help on editing package code, view the documentation.

所屬分類

依賴

依賴清單 1 項

原始碼儲存庫

使用此套件的專案

暫無相關資料。