这是一个文本编辑应用程序。我想改变我的文本颜色。我不知道错误是什么。
List<TextInfo> texts = [];
int currentIndex = 0;
changeTextColor(Color color) {
setState(() {
texts[currentIndex].color = color; //it works
});
}
changeTextColor1(context) {
Widget buildColorPicker() {
return ColorPicker(
pickerColor: texts[currentIndex].color, //there
onColorChanged: (color) => setState(
() => texts[currentIndex].color = color, //there
),
);
}
我试图将当前文本的颜色分配给变量。
Color pcolor = texts[currentIndex].color;
使用text . isnotempty()或List texts = [TextInfo()]预检
将重叠的位置集中处理。
changeTextColor(Color color){
if (texts.isEmpty()) return;
texts[currentIndex].color = color;
}
....
....
setState(()=> changeTextColor(color));
有一个快乐的编码生活。:)
如果你有一个列表,比如你的" text ";变量,当您编写诸如文本[0]之类的代码时,您实际上是在尝试检索该列表中的第一个元素。但是由于列表是空的,这将导致一个RangeError。
因为你的文本列表是空的,currentIndex为0,你的代码文本[currentIndex]将产生一个RangeError。