AJ9*_*989 8 flutter dart-null-safety
我将 flutter 的 SDK 版本更改为 min ,以便我可以修复我的代码以确保空值安全。
有一个我不明白的问题,这一行产生了以下错误:
The argument type 'Color?' can't be assigned to the parameter type 'Color'
border: Border.all(color: Colors.grey[300], width: 1),
Run Code Online (Sandbox Code Playgroud)
但是如果我改变Colors.grey[300]任何不使用的值[],它就会工作,所以Colors.grey工作得很好。
我应该在这里更改什么以继续使用grey[300]?
Cop*_*oad 11
问题:
Color color = Colors.grey[300]; // Error in null-safe mode
Run Code Online (Sandbox Code Playgroud)
当您使用 时Colors.grey[300],您实际上是从MapDart(在空安全模式下)警告您的颜色中获取颜色,因为该值可能是null. 查看更多
解决方案:
有两种解决方案。一种是通用的,一种仅针对这种情况。
使用 Bang 运算符 ( !)
Color color = Colors.grey[300]! // Added '!', error gone
Run Code Online (Sandbox Code Playgroud)
使用shadeXXX在Color
Color color = Colors.grey.shade300;
Run Code Online (Sandbox Code Playgroud)
您可以用于0xFFE0E0E0灰色[300]。
要选择材质颜色,您可以使用此工具。
要从样本之一中选择特定颜色,请使用所需特定颜色的整数对样本进行索引,如下所示:
Color selection = Colors.green[400]!; // Selects a mid-range green.
Run Code Online (Sandbox Code Playgroud)
每个 ColorSwatch 常量都是一种颜色,可以直接使用。例如:
Container(
color: Colors.blue, // same as Colors.blue[500] or Colors.blue.shade500
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1625 次 |
| 最近记录: |