在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
});
}
我要在用户进行选择时更改选择器的选择颜色。我想念什么?
答案 0 :(得分:0)
似乎您并没有共享此处涉及的所有代码。 与您共享的内容一样,要使颜色更改反映在您的变量上,并根据MaterialColorPicker的文档,您的代码应如下所示:
MaterialColorPicker(
onColorChange: (Color color) {
setState(() {
this._myColor = color;
});
},
selectedColor: Colors.red
)
答案 1 :(得分:0)
我不确定,但是您不能在对话框中使用setState,因为普通对话框不会更新状态,所以您必须使用自定义对话框