如何在我的框中设置默认颜色并根据输入改变颜色?
How do I set a default color in my box and let the color change depending on input?
我正在为我女儿制作一个简单的数学应用程序。现在我有一个显示问题(如“2+5=”)的 TextField(装饰颜色为白色),然后她可以在同一个框中输入答案(显示“2+5=7”)。
在此文本字段下方我有另一个文本字段。当用户点击按钮时,该字段会给出正确答案。如果用户回答正确,则装饰颜色变为绿色,如果答案错误,则装饰颜色变为红色。
问题是我无法让这个框在按下更正按钮之前变成白色。此时没有颜色,直到变绿或变红。
我现在已经把每个盒子都放在单独的类里了,所以如果我做错了,我不会搞砸太多。
非常感谢任何帮助为第二个框添加一些颜色 'default' 的帮助。谢谢。
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)),
),
),
);
}
}
下一个Class:
Color correctionColor = Colors.white;
var correct = Colors.green;
var incorrect = Colors.red;
....
body: Column(
children: <Widget>[
operationField,
correctionField,
您可以在构造函数中为任何实例变量指定默认值,以添加默认颜色,您可以这样写:
CorrectionTextField({
this.text,
this.boxPaint = Colors.white,
});
这样,如果在实例化小部件时没有指定颜色属性,它将被设置为白色。
我正在为我女儿制作一个简单的数学应用程序。现在我有一个显示问题(如“2+5=”)的 TextField(装饰颜色为白色),然后她可以在同一个框中输入答案(显示“2+5=7”)。
在此文本字段下方我有另一个文本字段。当用户点击按钮时,该字段会给出正确答案。如果用户回答正确,则装饰颜色变为绿色,如果答案错误,则装饰颜色变为红色。
问题是我无法让这个框在按下更正按钮之前变成白色。此时没有颜色,直到变绿或变红。
我现在已经把每个盒子都放在单独的类里了,所以如果我做错了,我不会搞砸太多。
非常感谢任何帮助为第二个框添加一些颜色 'default' 的帮助。谢谢。
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)),
),
),
);
}
}
下一个Class:
Color correctionColor = Colors.white;
var correct = Colors.green;
var incorrect = Colors.red;
....
body: Column(
children: <Widget>[
operationField,
correctionField,
您可以在构造函数中为任何实例变量指定默认值,以添加默认颜色,您可以这样写:
CorrectionTextField({
this.text,
this.boxPaint = Colors.white,
});
这样,如果在实例化小部件时没有指定颜色属性,它将被设置为白色。