gpt4 book ai didi

flutter - MaterialApp 中的主题在小部件 Flutter 中不起作用

转载 作者:行者123 更新时间:2023-12-04 14:07:20 26 4
gpt4 key购买 nike

这是我的代码,我明确定义了主题,如下所示。
但是,home 中容器的颜色在 Chrome 浏览器中仍然是蓝色的。

class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Spotify UI',
debugShowCheckedModeBanner: false,
themeMode: ThemeMode.dark,
darkTheme: ThemeData(
brightness: Brightness.dark,
appBarTheme: const AppBarTheme(backgroundColor: Colors.black),
scaffoldBackgroundColor: const Color(0xFF121212),
backgroundColor: const Color(0xFF121212),
primaryColor: Colors.black,
accentColor: const Color(0xFF1DB954),
iconTheme: const IconThemeData().copyWith(color: Colors.white),
fontFamily: 'Montserrat',
textTheme: TextTheme(
headline2: const TextStyle(
color: Colors.white,
fontSize: 32.0,
fontWeight: FontWeight.bold,
),
headline4: TextStyle(
fontSize: 12.0,
color: Colors.grey[300],
fontWeight: FontWeight.w500,
letterSpacing: 2.0,
),
bodyText1: TextStyle(
color: Colors.grey[300],
fontSize: 14.0,
fontWeight: FontWeight.w600,
letterSpacing: 1.0,
),
bodyText2: TextStyle(
color: Colors.grey[300],
letterSpacing: 1.0,
),
),
),
home: Column(
children: [
Expanded(
child: Container(
color: Theme.of(context).primaryColor,
),
)
],
),
);
}
}

最佳答案

这是因为您的 Container 的颜色小部件取自 context ,这是 build 的一个参数MyApp的方法.MaterialApp有一个主题,但 MyApp没有主题。所以当你使用 contextMyApp要获得原色,该上下文还没有任何主题,您将获得默认的原色。
相反,您可以做的是:

class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Spotify UI',
debugShowCheckedModeBanner: false,
themeMode: ThemeMode.dark,
darkTheme: ThemeData(
// ...
),
home: MyWidget(),
);
}
}

class MyWidget extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Column(
children: [
Expanded(
child: Container(
color: Theme.of(context).primaryColor,
),
)
],
);
}
}

关于flutter - MaterialApp 中的主题在小部件 Flutter 中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67422939/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com