声明用于参数分配的const

时间:2020-04-02 21:12:30

标签: flutter dart

据我所知,声明值const使其不可变,并且声明后不能更改。但是假设我有这个小部件:

@override
Widget build(BuildContext context) {
  return Container(
    constraints: BoxConstraints.expand(height: 200),
    decoration: BoxDecoration(color: Colors.grey),
    padding: const EdgeInsets.only(left: 10),
    child: Image.asset(
      _assetPath,
      fit: BoxFit.cover,
    ),
  );
}

分配padding的{​​{1}}值是否与const EdgeInsets.only(left: 10)不同?是出于EdgeInsets.only(left: 10)的目的吗?

2 个答案:

答案 0 :(得分:1)

如果您仅设计一种屏幕尺寸,则可以使用const。但是,如果您要针对多种屏幕尺寸进行设计(例如针对移动设备和网络设备),则绝对不希望使用const,例如

padding: EdgeInsets.only(left: 10 * MediaQuery.of(context).size.width/1920)

以确保您的填充适应屏幕尺寸。

答案 1 :(得分:0)

这绝对不会对您的应用程序输出产生任何影响。

根据我的看法,将值设为不变不会改变是非常好的习惯,因为这有助于提高性能。

在编译时定义const值,这就是为什么它可以提高性能。

相关问题