据我所知,声明值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)
的目的吗?
答案 0 :(得分:1)
如果您仅设计一种屏幕尺寸,则可以使用const
。但是,如果您要针对多种屏幕尺寸进行设计(例如针对移动设备和网络设备),则绝对不希望使用const
,例如
padding: EdgeInsets.only(left: 10 * MediaQuery.of(context).size.width/1920)
以确保您的填充适应屏幕尺寸。
答案 1 :(得分:0)
这绝对不会对您的应用程序输出产生任何影响。
根据我的看法,将值设为不变不会改变是非常好的习惯,因为这有助于提高性能。
在编译时定义const值,这就是为什么它可以提高性能。