Flutter:圆形颜色选择器(包:flutter_colorpicker)

Posted

技术标签:

【中文标题】Flutter:圆形颜色选择器(包:flutter_colorpicker)【英文标题】:Flutter: Circular Color Picker (Package: flutter_colorpicker) 【发布时间】:2022-01-21 06:06:53 【问题描述】:

我使用thisflutter 包在我的应用程序中实现了一个颜色选择器。我的Widget 看起来像这样:

     ColorPicker(
              pickerColor: model.color,
              onColorChanged: (color) 
               ...
              ,
              showLabel: false,
              pickerAreaHeightPercent: 0.4,
            )

这很好用,在 UI 中看起来像这样:

现在我想知道如何实现经典的圆形颜色选择器。我在官方文档中没有找到示例,但包描述中有一个屏幕截图显示如下:

有谁知道如何使用相同的包来实现这一点,或者可以提示我一个例子。

【问题讨论】:

【参考方案1】:

请查看此内容,您需要将调色板类型设置为paletteType: PaletteType.hueWheel,。使用与使用相同的包。

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


void main() => runApp(const MaterialApp(home: MyApp()));

class MyApp extends StatefulWidget 
  const MyApp(Key key) : super(key: key);

  @override
  State<StatefulWidget> createState() => _MyAppState();


class _MyAppState extends State<MyApp> 
  bool lightTheme = true;
  Color currentColor = Colors.amber;
  List<Color> currentColors = [Colors.yellow, Colors.green];
  List<Color> colorHistory = [];

  void changeColor(Color color) => setState(() => currentColor = color);
  void changeColors(List<Color> colors) => setState(() => currentColors = colors);

  @override
  Widget build(BuildContext context) 
    final foregroundColor = useWhiteForeground(currentColor) ? Colors.white : Colors.black;
    return AnimatedTheme(
      data: lightTheme ? ThemeData.light() : ThemeData.dark(),
      child: Builder(builder: (context) 
        return Scaffold(
          appBar: AppBar(
            title: const Text('Flutter Color Picker Example'),
            backgroundColor: currentColor,
            foregroundColor: foregroundColor,

          ),
          body: Container(
            child: InkWell(
              onTap: ()
                showColorPicker();
              ,
              child: Center(child: Text("Color Picker")),
            ),
          ),
        );
      ),
    );
  

  void showColorPicker() 
    showDialog(context: context, builder: (BuildContext context)
      return AlertDialog(
        title: Text("Pick a color"),
        content: SingleChildScrollView(
          child: ColorPicker(
            pickerColor: Color(0xff443a49),
            paletteType: PaletteType.hueWheel,
          ),
      ),
      );
    );
  

输出

【讨论】:

原来我还需要更新我的包版本。谢谢。

以上是关于Flutter:圆形颜色选择器(包:flutter_colorpicker)的主要内容,如果未能解决你的问题,请参考以下文章

Flutter 表单构建器包图像选择器 Firestore Flutter

Flutter 尺寸缩放形状颜色阴影变换动画

Flutter Listview语言选择需要在选择时进行圆形复选框设计

Flutter圆形头像不支持来自存储的图像

Flutter Web:文件选择器抛出“无效参数(路径):不能为空”错误

如何在 Flutter 中选择时更改 ListTile 的背景颜色