Flutter框架中,我试图将参数的默认值设置为borderRadius,在此示例中,我该如何实现呢?当我尝试设置它时,出现Default values of an optional parameter must be constant错误,例如:

class SimpleRoundButton extends StatelessWidget {
  final BorderRadius borderRadius;
  SimpleRoundButton({
  }):this.borderRadius = BorderRadius.circular(30.0);
}


class SimpleRoundButton extends StatelessWidget {
  final BorderRadius borderRadius= BorderRadius.circular(30.0);
  SimpleRoundButton({
    this.borderRadius,
  });
}


class SimpleRoundButton extends StatelessWidget {
  final BorderRadius borderRadius;
  SimpleRoundButton({
    this.borderRadius=  BorderRadius.circular(30.0)
  });
}

所有这些样本都不正确

最佳答案

BorderRadius.circular()不是const函数,因此您不能将其用作默认值。

为了能够设置const圆形边框,您可以使用BorderRadius.all函数,该函数如下所示:

class SimpleRoundButton extends StatelessWidget {
  final BorderRadius borderRadius;
  SimpleRoundButton({
    this.borderRadius: const BorderRadius.all(Radius.circular(30.0))
  });

  @override
  Widget build(BuildContext context) {
    return null;
  }
}

关于flutter - Dart 设置参数的默认值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56481645/

10-09 06:16