在AlertDialog内部的flutter_material_color_picker中以编程方式设置颜色

时间:2019-12-20 15:09:31

标签: flutter

AlertDialog内,我有TypeAheadFormField(来自flutter_typeahead)和MaterialColorPicker

MaterialColorPicker(
    onMainColorChange: (ColorSwatch color) {
        this._myColor = color;
    },
    selectedColor: _myColor,
)
...
onSuggestionSelected: (validColorInt) {
    this._textController.text = 'THE TEXT IS UPDATED';

    setState(() {
        this._myColor = Color(validColorInt); // BUT NOT THE PICKER
    });
}

我要在用户进行选择时更改选择器的选择颜色。我想念什么?

2 个答案:

答案 0 :(得分:0)

似乎您并没有共享此处涉及的所有代码。 与您共享的内容一样,要使颜色更改反映在您的变量上,并根据MaterialColorPicker的文档,您的代码应如下所示:

MaterialColorPicker(
  onColorChange: (Color color) {
    setState(() {
      this._myColor = color;
    });
  },
  selectedColor: Colors.red
)

答案 1 :(得分:0)

我不确定,但是您不能在对话框中使用setState,因为普通对话框不会更新状态,所以您必须使用自定义对话框