Flutter颜色选择器插件insta_color_picker的使用

发布于 1周前 作者 vueper 来自 Flutter

Flutter颜色选择器插件insta_color_picker的使用

安装

要使用Insta Color Picker插件,你需要将其添加到你的pubspec.yaml文件中:

dependencies:
  insta_color_picker: ^1.0.0

基本用法

以下是一个基本示例,展示了如何在Flutter应用中使用InstaColorPicker组件:

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

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  Color _color = Colors.white;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('颜色选择器示例'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Text(
              '当前选中的颜色:',
              style: TextStyle(fontSize: 18),
            ),
            Text(
              _color.toString(),
              style: TextStyle(fontSize: 18),
            ),
            InstaColorPicker(
              selectedColor: _color,
              pageController: PageController(),
              onColorSelected: (color) {
                setState(() {
                  _color = color;
                });
              },
            ),
          ],
        ),
      ),
    );
  }
}

高级用法

你可以通过传递更多参数来自定义InstaColorPicker的行为。以下是一个高级用法示例:

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

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  Color _color = Colors.white;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('颜色选择器高级用法'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Text(
              '当前选中的颜色:',
              style: TextStyle(fontSize: 18),
            ),
            Text(
              _color.toString(),
              style: TextStyle(fontSize: 18),
            ),
            InstaColorPicker(
              activeDotColor: Colors.red,
              colorButtonSize: 60,
              colorsList: [
                Colors.red,
                Colors.green,
                Colors.blue,
                Colors.yellow,
                Colors.purple,
                Colors.orange,
                Colors.teal,
                Colors.pink,
                Colors.brown,
                Colors.grey,
                Colors.cyan,
                Colors.lime,
              ],
              onColorSelected: (color) {
                setState(() {
                  _color = color;
                });
                print('Selected color: $color');
              },
              pageController: PageController(),
            ),
          ],
        ),
      ),
    );
  }
}

自定义

InstaColorPicker类提供了多个参数用于自定义颜色选择器的外观和行为。以下是可用的参数列表:

  • activeDotColor
  • activeDotScale
  • colorButtonSize
  • colorButtonBorderColor
  • colorsList
  • colorPaletteHeight
  • dotColor
  • dotHeight
  • dotWidth
  • height
  • icon
  • iconPadding
  • iconSize
  • onColorSelected
  • pageController
  • pageIndicatorSpacing
  • selectedColorSize
  • selectedColor

详细信息请参阅类文档。

示例

更详细的使用示例可以在该存储库的example目录中找到。

颜色调色板

你可以使用insta_color_picker包中提供的预定义颜色调色板。以下是如何使用的示例:

使用自定义颜色调色板

List<Color> myCustomPalette = [
  Colors.red,
  Colors.green,
  Colors.blue,
  Colors.yellow,
  // 添加更多自定义颜色
];

InstaColorPicker(
  colorsList: myCustomPalette,
  // 其他参数
);

使用提供的颜色调色板

InstaColorPicker(
  colorsList: [
    PaletteColors.oceanBreeze,
    PaletteColors.autumnVibes,
    PaletteColors.pastelDream,
  ],
  // 其他参数
);

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

1 回复

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


当然,以下是如何在Flutter中使用insta_color_picker插件来实现颜色选择器的代码示例。这个插件允许你在应用中轻松集成颜色选择功能。

首先,你需要在你的pubspec.yaml文件中添加insta_color_picker依赖:

dependencies:
  flutter:
    sdk: flutter
  insta_color_picker: ^latest_version  # 请将latest_version替换为当前最新版本号

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

接下来,你可以在你的Flutter应用中使用InstaColorPicker。以下是一个完整的示例代码,展示了如何在一个简单的Flutter应用中集成颜色选择器:

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

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

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

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  Color selectedColor = Colors.black;

  void showColorPicker() async {
    final Color picked = await InstaColorPicker.showColorPicker(
      context,
      initColor: selectedColor,
      colorPickerListener: (color, dialogIsVisible) {
        // 监听颜色变化(可选)
      },
      enableAlpha: true, // 是否启用透明度选择
      pickerAreaPadding: 16.0,
      dialogTitle: Text('选择颜色'),
      dialogBackgroundColor: Colors.white,
      includeShades: true, // 是否包含颜色深浅变化
      showColorCode: true, // 是否显示颜色代码
      colorPickerWidth: 300,
      colorPickerHeight: 500,
    );

    if (picked != null) {
      setState(() {
        selectedColor = picked;
      });
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Color Picker Demo'),
      ),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: <Widget>[
            Container(
              width: 100,
              height: 100,
              color: selectedColor,
              child: Center(
                child: Text(
                  '${selectedColor.toHex()}',
                  style: TextStyle(color: Colors.white),
                ),
              ),
            ),
            SizedBox(height: 20),
            ElevatedButton(
              onPressed: showColorPicker,
              child: Text('选择颜色'),
            ),
          ],
        ),
      ),
    );
  }
}

代码说明:

  1. 添加依赖:在pubspec.yaml中添加insta_color_picker依赖。
  2. 定义主应用:在MyApp类中定义基本的Flutter应用结构。
  3. 创建主页:在MyHomePage类中创建一个有状态的Widget,其中包含一个用于显示选中颜色的容器和一个按钮来触发颜色选择器。
  4. 显示颜色选择器:在showColorPicker方法中,使用InstaColorPicker.showColorPicker方法来显示颜色选择器对话框。你可以根据需要自定义颜色选择器的参数,如是否启用透明度选择、对话框标题等。
  5. 更新选中颜色:当用户选择颜色后,更新selectedColor状态,并在UI中反映出来。

这个示例代码展示了如何使用insta_color_picker插件来在Flutter应用中集成颜色选择器,并处理颜色选择的结果。你可以根据实际需求进一步自定义和扩展这个示例。

回到顶部