dart useMaterial3为真时,主样本不工作

x8diyxa7  于 2023-03-05  发布在  其他
关注(0)|答案(1)|浏览(198)

当我将Flutter更新为Flutter 3.7.6时,突然间'primarySwatch'不再被反映。如果我将'useMaterial3'设置为false,它将工作,但我不知道为什么。

return MaterialApp(
 title: 'Demo',
 theme: ThemeData(
 primarySwatch: Colors.pink,
 appBarTheme: const AppBarTheme(elevation: 0),
 useMaterial3: true,
 ),
home: const HomeScreen(),
);

我尝试将useMaterial3设置为false,但无法想到任何其他解决方案。

rkue9o1l

rkue9o1l1#

更新到Flutter 3.7.6后,默认的材质设计配色方案做了一些更改。特别是,如果useMaterial3属性设置为true,primarySwatch属性可能无法按预期反映。
当useMaterial3设置为true时,将使用材料设计3配色方案,而不是默认的材料设计2配色方案。这意味着某些属性(如primarySwatch)可能会有不同的行为或需要不同的值。
如果要继续使用默认的Material Design 2配色方案,可以将useMaterial3设置为false。或者,通过使用ColorScheme对象并设置primary属性而不是primarySwatch,可以更新配色方案以使用新的Material Design 3配色方案。
下面是一个例子:

return MaterialApp(
 title: 'Demo',
 theme: ThemeData(
 colorScheme: ColorScheme.fromSwatch(primarySwatch: Colors.pink),
 appBarTheme: const AppBarTheme(elevation: 0),
 useMaterial3: true,
 ),
home: const HomeScreen(),
);

这会将colorScheme属性设置为一个新的ColorScheme对象,并将primarySwatch属性设置为Colors.pink。这将提供与在Flutter的早期版本中直接设置primarySwatch相同的行为。

相关问题