Как установить цвет по умолчанию в моем блоке и позволить цвету меняться в зависимости от ввода? - PullRequest
0 голосов
/ 02 апреля 2019

Я делаю простое математическое приложение для моей дочери.Прямо сейчас у меня есть TextField (с белым цветом decorColor), в котором отображается вопрос (например, «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,

1 Ответ

1 голос
/ 02 апреля 2019

Вы можете указать значение по умолчанию для любой переменной экземпляра в конструкторе, чтобы добавить цвет по умолчанию, который вы можете написать:

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

Таким образом, он будет установлен в белый цвет, если не указано свойство цвета при создании экземпляра виджета.

...