Colors 如何在框中设置默认颜色,并根据输入更改颜色?

Colors 如何在框中设置默认颜色,并根据输入更改颜色?,colors,flutter,textfield,Colors,Flutter,Textfield,我正在为我女儿制作一个简单的数学应用程序。现在我有一个文本字段(带有装饰色白色),显示一个问题(如“2+5=”),然后她可以在同一个框中键入答案(显示“2+5=7”) 在这个文本字段下面,我有另一个文本字段。当用户点击按钮时,此字段显示正确答案。如果用户的回答正确,则装饰颜色变为绿色,如果回答错误,则装饰颜色变为红色 问题是,在按下校正按钮之前,我很难让这个框变成白色。此时,直到它变成绿色或红色,才有颜色 我现在把每个盒子都放在不同的课堂上,所以如果我做错了什么,我就不会把事情搞得一团糟 非常感

我正在为我女儿制作一个简单的数学应用程序。现在我有一个文本字段(带有装饰色白色),显示一个问题(如“2+5=”),然后她可以在同一个框中键入答案(显示“2+5=7”)

在这个文本字段下面,我有另一个文本字段。当用户点击按钮时,此字段显示正确答案。如果用户的回答正确,则装饰颜色变为绿色,如果回答错误,则装饰颜色变为红色

问题是,在按下校正按钮之前,我很难让这个框变成白色。此时,直到它变成绿色或红色,才有颜色

我现在把每个盒子都放在不同的课堂上,所以如果我做错了什么,我就不会把事情搞得一团糟

非常感谢您为第二个框添加“默认”颜色。多谢各位

   import 'package:flutter/material.dart';

class CorrectionTextField extends StatelessWidget {
  final String text;
  final boxPaint;

  CorrectionTextField({this.text, this.boxPaint = Colors.white});

  @override
  Widget build(BuildContext context) {
    return Padding(
      padding: const EdgeInsets.only(right: 10.0, top: 8.0),
      child: Container(
        constraints: BoxConstraints.expand(height: 60.0, width: 150),
        decoration: BoxDecoration(
          color: boxPaint,
          borderRadius: BorderRadius.all(const Radius.circular(15.0)),
          border: Border.all(color: Colors.black54, width: 4.0),
        ),
        child: Center(
          child:
          Text(text, style: TextStyle(color: Colors.white, fontSize: 
48.0)),
        ),
      ),
    );
  }
}
下一节课:

  Color correctionColor = Colors.white;
   var correct = Colors.green;
  var incorrect = Colors.red;
....
  body: Column(
      children: <Widget>[
        operationField,
        correctionField,
Color correctionColor=Colors.white;
var correct=Colors.green;
var不正确=颜色。红色;
....
正文:专栏(
儿童:[
操作场,
修正场,

您可以为构造函数中的任何实例变量指定默认值,以添加可以写入的默认颜色:

CorrectionTextField({
    this.text,
    this.boxPaint = Colors.white,
});

这样,如果在实例化小部件时没有指定颜色属性,它将被设置为白色。

非常感谢。它还没有完全起作用,但我认为我的代码在displayClass中看起来有点滑稽。您是否使用有状态小部件来管理答案验证和颜色更改?您可以添加一个带有自定义颜色的状态变量枚举类型有好的、错的和未定义的。然后你可以根据状态更新颜色,并重复使用相同的组件来更新颜色。我编辑了我的代码以使其正常工作。我将不得不进一步研究枚举解决方案,因为我没有真正了解它。谢谢