Flutter/外部ライブラリ/colorpicker
提供: 初心者エンジニアの簡易メモ
colorpickerとは
色選択ライブラリ
公式
https://pub.dev/packages/flutter_colorpicker
準備
pubspec.yaml
dependencies: flutter_colorpicker: any
flutter packages get flutter packages upgrade
サンプル
import 'package:flutter_colorpicker/flutter_colorpicker.dart';
// create some values
Color pickerColor = Color(0xff443a49);
Color currentColor = Color(0xff443a49);
// ValueChanged<Color> callback
void changeColor(Color color) {
setState(() => pickerColor = color);
}
// raise the [showDialog] widget
showDialog(
context: context,
child: AlertDialog(
title: const Text('Pick a color!'),
content: SingleChildScrollView(
child: ColorPicker(
pickerColor: pickerColor,
onColorChanged: changeColor,
enableLabel: true,
pickerAreaHeightPercent: 0.8,
),
// Use Material color picker:
//
// child: MaterialPicker(
// pickerColor: pickerColor,
// onColorChanged: changeColor,
// enableLabel: true, // only on portrait mode
// ),
//
// Use Block color picker:
//
// child: BlockPicker(
// pickerColor: currentColor,
// onColorChanged: changeColor,
// ),
),
actions: <Widget>[
FlatButton(
child: const Text('Got it'),
onPressed: () {
setState(() => currentColor = pickerColor);
Navigator.of(context).pop();
},
),
],
),
)
<pre>
縦長のpicker
<pre>
import 'package:flutter_colorpicker/material_picker.dart';
showDialog(
context: context,
child: AlertDialog(
title: const Text('Pick a color!'),
content: SingleChildScrollView(
child: MaterialPicker(
pickerColor: pickerColor,
onColorChanged: changeColor,
enableLabel: true, // only on portrait mode
),
ブロック型のpicker
import 'package:flutter_colorpicker/block_picker.dart';
showDialog(
context: context,
child: AlertDialog(
title: const Text('Pick a color!'),
content: SingleChildScrollView(
child: BlockPicker(
pickerColor: currentColor,
onColorChanged: changeColor,
),
