1- 我有一个带阴影的容器,这个阴影根据主题的不同有不同的颜色。我到底在ThemeData中的哪里存储阴影颜色?我把容器的颜色存储在 canvasColor
但我不知道该把阴影颜色放在哪里。所以我可以很容易地做Theme.of(context)...。
2- 当制作单独的主题时,如果我做了以下操作可以吗?return ThemeData(myStuff);
而不是 ThemeData().copyWith(myStuff);
? 还是推荐使用copyWith?
通常情况下,你不会根据主题改变阴影。如果是这样的话......你可以创建一个自己的类,把阴影存储在那里。
class MyShadows {
static const primaryShadow =
Shadow(color: Colors.black, blurRadius: 3, offset: Offset(2, 3));
static const secondaryShadow =
Shadow(color: Colors.black, blurRadius: 3, offset: Offset(2, 3));
}
...
Container(
decoration: BoxDecoration(boxShadow: [MyShadows.primaryShadow]),
);
这是好的。当你执行ThemeData().copyWith(yourStuff) - 你创建新的ThemeData实例,然后通过调用copyWith创建另一个实例。