当我将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,但无法想到任何其他解决方案。
1条答案
按热度按时间rkue9o1l1#
更新到Flutter 3.7.6后,默认的材质设计配色方案做了一些更改。特别是,如果useMaterial3属性设置为true,primarySwatch属性可能无法按预期反映。
当useMaterial3设置为true时,将使用材料设计3配色方案,而不是默认的材料设计2配色方案。这意味着某些属性(如primarySwatch)可能会有不同的行为或需要不同的值。
如果要继续使用默认的Material Design 2配色方案,可以将useMaterial3设置为false。或者,通过使用ColorScheme对象并设置primary属性而不是primarySwatch,可以更新配色方案以使用新的Material Design 3配色方案。
下面是一个例子:
这会将colorScheme属性设置为一个新的ColorScheme对象,并将primarySwatch属性设置为Colors.pink。这将提供与在Flutter的早期版本中直接设置primarySwatch相同的行为。