Flutter容器颜色设置插件conatiner_color的使用

渐变容器 : 具有两个不同颜色的精美容器 #

关于 #

渐变容器是一个小部件,用于处理容器的渐变颜色和阴影。

功能 #

  • 简单导入。
  • 设置高度和宽度。
  • 设置文本及其样式。

使用的工具 #

  • Android Studio IDE 和 Xcode。
  • Android 版本 7.0 或更高版本。
  • Android SDK 24-33。
  • Dart。

贡献 #

如果您想为这个项目做出贡献,欢迎您。最新的代码可以在主分支上找到。请创建一个新分支并在此处进行更改。您必须创建一个拉取请求到特定分支才能将其合并。

支持 #

如果您希望支持此项目以获得更好的版本,您可以联系 Rakshak Gaind 进行支持。

谢谢。

致意 ~ Rakshak

example/lib/main.dart

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

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

class MyApp extends StatelessWidget { const MyApp({super.key});

// 这个小部件是您的应用的根。 @override Widget build(BuildContext context) { return MaterialApp( title: ‘Flutter Demo’, theme: ThemeData( // 这是您的应用的主题。 // // 尝试运行您的应用。您会看到应用有一个蓝色的工具栏。然后,在不退出应用的情况下,将主色调更改为绿色并重新加载(在控制台中按 “r”,或者在保存更改后直接重新加载)。 // 注意,计数器不会重置为零;应用不会重新启动。 primarySwatch: Colors.blue, ), home: const MyHomePage(title: ‘Flutter Demo Home Page’), ); } }

class MyHomePage extends StatefulWidget { const MyHomePage({super.key, required this.title});

// 这个小部件是您应用的首页。它是有状态的,这意味着它有一个状态对象(定义在下面),该状态对象包含影响其外观的字段。 // 这个类是状态的配置。它保留了由父级(在这个例子中是App小部件)提供的值(在这个例子中是标题),并被构建方法使用。小部件子类中的字段总是标记为 “final”。

final String title;

@override State<MyHomePage> createState() => _MyHomePageState(); }

class _MyHomePageState extends State<MyHomePage> { int _counter = 0;

void _incrementCounter() { setState(() { // 这次调用 setState 告诉 Flutter 框架某些东西已经改变,因此它会重新运行下面的构建方法, // 以便显示更新后的值。如果我们不调用 setState 而只是改变 _counter,那么构建方法将不会被调用, // 因此什么都不会发生。 _counter++; }); }

@override Widget build(BuildContext context) { // 每次调用 setState 方法时,都会重新运行这个方法。 // // Flutter 框架针对重新运行构建方法进行了优化,使其变得更快,这样您可以重建任何需要更新的小部件,而不是逐个更改实例。 return Scaffold( appBar: AppBar( // 在这里,我们从 MyHomePage 对象获取值,该对象是由 App.build 方法创建的,并将其用于设置我们的应用栏标题。 title: Text(widget.title), ), body: Center( // Center 是一个布局小部件。它接受一个子元素并将它放置在父元素的中间。 child: Column( // Column 也是一个布局小部件。它接受一个子元素列表并垂直排列它们。默认情况下,它水平调整自己的大小以适应其子元素,并尝试与它的父元素一样高。 // // 调用 “调试绘制”(在控制台中按 “p”,选择 Android Studio 中的 “切换调试绘制” 动作,或在 Visual Studio Code 中选择 “切换调试绘制” 命令) // 可以查看每个小部件的线框。 // // Column 有一些属性可以控制它如何调整自己的大小以及如何定位其子元素。在这里我们使用 mainAxisAlignment 来垂直居中子元素;主要轴是垂直轴,因为 Columns 是垂直的(交叉轴将是水平的)。 mainAxisAlignment: MainAxisAlignment.center, children: <Widget>[ const ColorContainer(title: ‘容器文本’,), const Text( ‘您已经点击了按钮这么多次:’, ), Text( ‘$_counter’, style: Theme.of(context).textTheme.headlineMedium, ), ], ), ), floatingActionButton: FloatingActionButton( onPressed: _incrementCounter, tooltip: ‘增加’, child: const Icon(Icons.add), ), // 这个逗号使自动格式化更好看。 ); } }


更多关于Flutter容器颜色设置插件conatiner_color的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter容器颜色设置插件conatiner_color的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


在Flutter中,Container 是一个常用的布局小部件,它允许你设置背景颜色、边框、边距、内边距等属性。如果你想为 Container 设置背景颜色,可以直接使用 color 属性。不过,如果你想使用一个专门的插件来管理颜色,或者想要更灵活地设置颜色,可以考虑使用一些颜色管理插件,例如 flutter_colorpickermaterial_color_utilities

1. 使用 Containercolor 属性

最简单的方式是直接在 Container 中使用 color 属性来设置背景颜色:

import 'package:flutter/material.dart';

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

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        appBar: AppBar(title: Text('Container Color Example')),
        body: Center(
          child: Container(
            width: 200,
            height: 200,
            color: Colors.blue, // 设置容器背景颜色
            child: Center(
              child: Text(
                'Hello, Flutter!',
                style: TextStyle(color: Colors.white),
              ),
            ),
          ),
        ),
      ),
    );
  }
}

2. 使用 flutter_colorpicker 插件

如果你想提供一个颜色选择器,让用户动态选择颜色,可以使用 flutter_colorpicker 插件。

安装插件:

pubspec.yaml 中添加依赖:

dependencies:
  flutter:
    sdk: flutter
  flutter_colorpicker: ^1.0.3

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

使用示例:

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

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

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return MaterialApp(
      home: HomeScreen(),
    );
  }
}

class HomeScreen extends StatefulWidget {
  [@override](/user/override)
  _HomeScreenState createState() => _HomeScreenState();
}

class _HomeScreenState extends State<HomeScreen> {
  Color _selectedColor = Colors.blue;

  void _showColorPicker() {
    showDialog(
      context: context,
      builder: (BuildContext context) {
        return AlertDialog(
          title: Text('Pick a color'),
          content: SingleChildScrollView(
            child: ColorPicker(
              pickerColor: _selectedColor,
              onColorChanged: (color) {
                setState(() {
                  _selectedColor = color;
                });
              },
              showLabel: true,
              pickerAreaHeightPercent: 0.8,
            ),
          ),
          actions: <Widget>[
            TextButton(
              child: Text('OK'),
              onPressed: () {
                Navigator.of(context).pop();
              },
            ),
          ],
        );
      },
    );
  }

  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text('Color Picker Example')),
      body: Center(
        child: GestureDetector(
          onTap: _showColorPicker,
          child: Container(
            width: 200,
            height: 200,
            color: _selectedColor, // 使用选择的颜色
            child: Center(
              child: Text(
                'Tap to change color',
                style: TextStyle(color: Colors.white),
              ),
            ),
          ),
        ),
      ),
    );
  }
}

3. 使用 material_color_utilities 插件

如果你想要生成 Material Design 的颜色主题,可以使用 material_color_utilities 插件。这个插件可以帮助你生成基于主色调的 Material Design 颜色方案。

安装插件:

pubspec.yaml 中添加依赖:

dependencies:
  flutter:
    sdk: flutter
  material_color_utilities: ^0.2.0

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

使用示例:

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

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

class MyApp extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    final colorScheme = ColorScheme.fromSeed(seedColor: Colors.blue);

    return MaterialApp(
      theme: ThemeData(
        colorScheme: colorScheme,
      ),
      home: HomeScreen(),
    );
  }
}

class HomeScreen extends StatelessWidget {
  [@override](/user/override)
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text('Material Color Utilities Example')),
      body: Center(
        child: Container(
          width: 200,
          height: 200,
          color: Theme.of(context).colorScheme.primary, // 使用主题颜色
          child: Center(
            child: Text(
              'Hello, Flutter!',
              style: TextStyle(color: Theme.of(context).colorScheme.onPrimary),
            ),
          ),
        ),
      ),
    );
  }
}
回到顶部