Flutter - 如何更改放置在自定义小部件中的 Color class' 值?

Flutter - How to change the Color class' value that placed inside a custom widget?

我想创建一个我会经常使用它的小部件,这样我就不必手动创建它了。

这是我构建的:

    Widget keyWidget(String keyNumber, String keyName) {
          return Container(
              width: 100.0,
              height: 50.0,
              color: Colors.red, //How I change the color's value? (Colors.{this_one})?
              child: FlatButton(
                onPressed: () {
                  final player = AudioCache();
                  player.play('key$keyNumber.mp3');
                },
                child: Text('$keyName'),
              ),
            );
}

如何更改颜色值 (color: Colors.{this_one},) 以便在 keyWidget 属性中进行设置?

您可以将 Color 作为参数传递给 keyWidget() 方法

试试这个方法

 Widget keyWidget(String keyNumber, String keyName,Color mColor) {
          return Container(
              width: 100.0,
              height: 50.0,
              color: mColor, //How I change the color's value? (Colors.{this_one})?
              child: FlatButton(
                onPressed: () {
                  final player = AudioCache();
                  player.play('key$keyNumber.mp3');
                },
                child: Text('$keyName'),
              ),
            );
}

现在你可以像这样调用这个方法了。

keyWidget('keyNumber','keyName',Colors.red);
keyWidget('keyNumber','keyName',Colors.pink);
keyWidget('keyNumber','keyName',Color(0xffACACAC));

您还可以使 Color 参数可选

示例代码

Widget keyWidget(String keyNumber, String keyName,{ mColor=Colors.red}) {
    return Container(
      width: 100.0,
      height: 50.0,
      color: mColor, //How I change the color's value? (Colors.{this_one})?
      child: FlatButton(
        onPressed: () {
          final player = AudioCache();
          player.play('key$keyNumber.mp3');
        },
        child: Text('$keyName'),
      ),
    );
  }

现在你可以像这样调用这个方法了。

keyWidget('keyNumber', 'keyName');
keyWidget('keyNumber', 'keyName',mColor:  Colors.accents);