Flutter 默认颜色值

问题描述

如何在构造函数中正确设置?前提是第一个字段的值可以设置为不同于认值,第二个字段应始终使用 withAccent

enter image description here

解决方法

您可以将类构造函数设为私有并创建工厂构造函数来实现您的自定义初始化逻辑,如下所示:

class Foo {
  final Color sliderDefaultColor;
  final Color sliderActiveColor;

  Foo._({
    required this.sliderDefaultColor,required this.sliderActiveColor,});

  factory Foo(Color color) {
    return Foo._(
      sliderDefaultColor: color,sliderActiveColor: color.withRed(10),);
  }
}

然后你可以像这样实例化类:

final foo = Foo(Colors.blueGrey);