Flutter颜色方案展示插件color_scheme_grid的使用

Flutter颜色方案展示插件color_scheme_grid的使用

简介

color_scheme_grid 是一个用于在运行时可视化您的应用颜色方案的 Flutter 包。此包会显示一个包含 Material 颜色方案颜色的网格,使您可以更轻松地查看和理解应用中使用的颜色。它会自动从上下文中获取 Material 3 颜色,并且也支持自定义颜色。

特性

  • 显示 Material 颜色方案的颜色网格。
  • 支持自定义颜色。
  • 易于集成和使用。

示例动画

安装

pubspec.yaml 文件中添加以下依赖项:

dependencies:
  color_scheme_grid: ^1.0.0

然后运行 flutter pub get 来安装包。

使用

步骤

  1. 导入包:

    import 'package:color_scheme_grid/color_scheme_grid.dart';
    
  2. 使用 ColorSchemeGrid.show 方法在对话框中显示颜色方案网格:

    import 'package:flutter/material.dart';
    import 'package:color_scheme_grid/color_scheme_grid.dart';
    
    void main() {
      runApp(const MyApp());
    }
    
    class MyApp extends StatelessWidget {
      const MyApp({super.key});
    
      [@override](/user/override)
      Widget build(BuildContext context) {
        return MaterialApp(
          title: 'Color Scheme Grid Example',
          theme: ThemeData(
            colorScheme: ColorScheme.fromSeed(seedColor: Colors.blue),
            useMaterial3: true,
          ),
          home: Scaffold(
            appBar: AppBar(
              title: const Text('Color Scheme Grid Example'),
            ),
            body: Center(
              child: ElevatedButton(
                onPressed: () {
                  ColorSchemeGrid.show(context, customColors: [
                    const ColorName('customRedLike', Color.fromARGB(255, 233, 32, 5)),
                    const ColorName('customGreenShare', Color.fromARGB(255, 5, 233, 32)),
                  ]);
                },
                child: const Text('Show Color Scheme Grid'),
              ),
            ),
          ),
        );
      }
    }
    

示例

以下是一个演示如何使用 color_scheme_grid 包的 Flutter 应用示例:

import 'package:color_scheme_grid/color_scheme_grid.dart';
import 'package:flutter/material.dart';

import 'preview_colors_grid.dart';

void main() {
  runApp(const ExampleApp());
}

class ExampleApp extends StatefulWidget {
  const ExampleApp({super.key});

  [@override](/user/override)
  State<ExampleApp> createState() => _ExampleAppState();
}

class _ExampleAppState extends State<ExampleApp> {
  ThemeMode themeMode = ThemeMode.dark;

  final ThemeData lightTheme = ThemeData(
      colorScheme: ColorScheme.fromSeed(
          seedColor: Colors.blue, brightness: Brightness.light),
      useMaterial3: true);

  final ThemeData darkTheme = ThemeData(
      colorScheme: ColorScheme.fromSeed(
          seedColor: Colors.blue, brightness: Brightness.dark),
      useMaterial3: true);

  void _showColorSchemeGrid(BuildContext context) {
    ColorSchemeGrid.show(context, customColors: [
      const ColorName('customRedLike', Color.fromARGB(255, 233, 32, 5)),
      const ColorName('customGreenShare', Color.fromARGB(255, 5, 233, 32)),
    ]);
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      themeMode: themeMode,
      title: 'Flutter Color Scheme Grid Example',
      theme: lightTheme,
      darkTheme: darkTheme,
      home: Scaffold(
        appBar: AppBar(
          title: const Text(
            'Color Scheme Grid Example',
          ),
        ),
        body: Column(
          children: [
            Expanded(
                flex: 2,
                child: Column(
                  mainAxisAlignment: MainAxisAlignment.spaceEvenly,
                  children: [
                    const Text(
                      'Press the button below to open the Color Scheme Grid Dialog',
                      textAlign: TextAlign.center,
                    ),
                    Builder(builder: (context) {
                      return OutlinedButton(
                        onPressed: () => _showColorSchemeGrid(context),
                        child: const Row(
                          mainAxisSize: MainAxisSize.min,
                          children: [
                            Text('Open Color Scheme Grid'),
                            SizedBox(width: 8),
                            Icon(Icons.search),
                          ],
                        ),
                      );
                    }),
                    Row(
                      mainAxisAlignment: MainAxisAlignment.center,
                      children: [
                        const Text('Dark Mode'),
                        const SizedBox(width: 8),
                        Switch(
                          value: themeMode == ThemeMode.dark,
                          onChanged: (bool value) {
                            setState(() {
                              themeMode = value ? ThemeMode.dark : ThemeMode.light;
                            });
                          },
                        ),
                      ],
                    ),
                  ],
                )),
            const Flexible(child: PreviewColorsGrid()),
          ],
        ),
      ),
    );
  }
}

更多关于Flutter颜色方案展示插件color_scheme_grid的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter颜色方案展示插件color_scheme_grid的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,下面是一个关于如何在Flutter项目中使用color_scheme_grid插件来展示颜色方案的代码示例。color_scheme_grid插件是一个用于在Flutter应用中快速展示颜色方案的工具,非常适合在设计工具或应用设置页面中展示颜色主题。

首先,确保你已经在pubspec.yaml文件中添加了color_scheme_grid依赖:

dependencies:
  flutter:
    sdk: flutter
  color_scheme_grid: ^最新版本号  # 请替换为实际最新版本号

然后,运行flutter pub get来安装依赖。

接下来,在你的Flutter应用中,你可以按照以下方式使用color_scheme_grid

import 'package:flutter/material.dart';
import 'package:color_scheme_grid/color_scheme_grid.dart';

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Color Scheme Grid Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: ColorSchemeGridDemo(),
    );
  }
}

class ColorSchemeGridDemo extends StatelessWidget {
  final List<ColorScheme> colorSchemes = [
    ColorScheme.fromSeed(
      seedColor: Colors.blue,
    ),
    ColorScheme.fromSeed(
      seedColor: Colors.green,
    ),
    ColorScheme.fromSeed(
      seedColor: Colors.red,
    ),
    // 你可以添加更多的ColorScheme
  ];

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Color Scheme Grid Demo'),
      ),
      body: Padding(
        padding: const EdgeInsets.all(16.0),
        child: GridView.builder(
          gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
            crossAxisCount: 2,
            crossAxisSpacing: 16.0,
            mainAxisSpacing: 16.0,
          ),
          itemCount: colorSchemes.length,
          itemBuilder: (context, index) {
            return Card(
              child: ColorSchemeGrid(
                colorScheme: colorSchemes[index],
              ),
            );
          },
        ),
      ),
    );
  }
}

在这个示例中,我们创建了一个包含多个ColorScheme的列表,并使用GridView.builder来展示它们。每个ColorScheme都被包裹在一个Card中,并使用ColorSchemeGrid小部件来显示颜色方案。

ColorScheme.fromSeed方法用于从给定的基础颜色生成一个颜色方案。你可以根据需要调整或扩展colorSchemes列表以包含更多的颜色方案。

运行这个应用后,你将看到一个网格布局,每个单元格都显示了一个颜色方案的不同部分,如背景、主色、次色等。

这个示例展示了如何在Flutter应用中使用color_scheme_grid插件来动态展示和管理颜色方案。希望这对你有所帮助!

回到顶部