如何在Flutter中获取小部件内的主题颜色

z0qdvdin  于 2022-12-14  发布在  Flutter
关注(0)|答案(3)|浏览(198)

我有这个:

Widget build(BuildContext context) {
    return MaterialApp(
      title: 'AnApp',
      theme: ThemeData(
        primarySwatch: Colors.blueGrey,
      ),
      home: MainWidget()
    );
  }
}

所以我已经把primarySwatch颜色设置为blueGrey。我如何在MainWidget类中访问这个颜色?
我想设置一个与AppBar颜色相同的背景。

mitkmikd

mitkmikd1#

我不确定是否存在在这样的小部件中使用primarySwatch的方法,但如果您正在寻找AppBar颜色,它实际上是primaryColor,您可以使用

Color color = Theme.of(context).primaryColor;
bq3bfh9z

bq3bfh9z2#

您可以用途:

color: Theme.of(context).primarySwatch;


您可以在主主题类中更改primaryswatch颜色,而不是在您的类中更改,方法是-
点击Ctrl + primarySwatch,您将进入theme_data页面,在那里您可以根据自己的习惯更改主题颜色。

bvhaajcl

bvhaajcl3#

请创建AppTheme类并设置明暗主题

Widget build(BuildContext context) {
return MaterialApp(
  debugShowCheckedModeBanner: false,
   theme: AppTheme.lightTheme,
   darkTheme: AppTheme.darkTheme,
   themeMode: theme.isDarkMode ? ThemeMode.dark : ThemeMode.light,

  home: SplashScreen(),
);

}

相关问题