在ThemeData中哪里存储阴影颜色?

问题描述 投票:1回答:1

1- 我有一个带阴影的容器,这个阴影根据主题的不同有不同的颜色。我到底在ThemeData中的哪里存储阴影颜色?我把容器的颜色存储在 canvasColor 但我不知道该把阴影颜色放在哪里。所以我可以很容易地做Theme.of(context)...。

2- 当制作单独的主题时,如果我做了以下操作可以吗?return ThemeData(myStuff); 而不是 ThemeData().copyWith(myStuff);? 还是推荐使用copyWith?

flutter flutter-layout
1个回答
1
投票
  1. 通常情况下,你不会根据主题改变阴影。如果是这样的话......你可以创建一个自己的类,把阴影存储在那里。

    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]),
    );
    
  2. 这是好的。当你执行ThemeData().copyWith(yourStuff) - 你创建新的ThemeData实例,然后通过调用copyWith创建另一个实例。

© www.soinside.com 2019 - 2024. All rights reserved.