0

我正在使用两个不同ThemeData的类在暗模式和亮模式之间切换。但是,我使用的配色方案要求我访问我定义的样本内的颜色。

static const int _greyPrimaryValue = 0xFF1E1E1E;
static const MaterialColor darkSwatch = MaterialColor(
    _greyPrimaryValue,
    <int, Color>{
      0: Color(0xFF000000),
      50: Color(_greyPrimaryValue),
      100: Color(0xFF222222),
      200: Color(0xFF242424),
      300: Color(0xFF272727),
      400: Color(0xFF2C2C2C),
      500: Color(0xFF2E2E2E),
      600: Color(0xFF333333),
      700: Color(0xFF353535),
      800: Color(0xFF383838),
      900: Color(0xFF424242),
    },
  );

get darkTheme => ThemeData(
   primaryColor: darkSwatch.shade50,
   primarySwatch: darkSwatch,
)

有没有办法访问我的 primarySwatch 中的值?我可以Theme.of(context)用来访问不同的值,例如primaryColor. 有没有办法访问我在样本中定义的颜色,而不是将它们分配给 ThemeData 中的不同键?否则创建样本有什么意义?

通缉行为

Container(
   color: Theme.of(context).primarySwatch.shade100,
)

现在的情况

bool _isDarkTheme = Theme.of(context).brightness == Brightness.dark;

Container(
   color: _isDarkTheme ? lightSwatch.shade100 : darkSwatch.shade100
)
4

0 回答 0