如何在我的框中设置默认颜色并根据输入改变颜色?

问题描述 投票:0回答:1

我为我的女儿做了一个简单的数学应用程序。现在我有一个TextField(装饰颜色为白色)显示一个问题(如'2 + 5 ='),然后她可以在同一个框中输入答案(显示'2 + 5 = 7')。

在这个textField下面我有另一个textField。当用户点击按钮时,该字段输出正确的答案。如果用户的答案是正确的,那么decorationColors会变为绿色,如果答案错误,那么decorationColors会变为红色。

问题是我在按下校正按钮之前让这个盒子变白是我遇到了麻烦。此时,在变为绿色或红色之前没有颜色。

我现在已经将每个盒子放在不同的课程中,所以如果我做错了什么我就不会搞得太多。

任何帮助将一些颜色作为“默认”添加到第二个盒子的任何帮助都非常感谢。谢谢。

   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,
colors flutter textfield
1个回答
1
投票

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

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

这样,如果在实例化窗口小部件时未指定颜色属性,则将其设置为白色。

© www.soinside.com 2019 - 2024. All rights reserved.