在我的应用程序中,我指定了一个亮和暗的主题。我想创建一个按钮,在暗主题上是白色,在亮主题上是黑色。有没有一种方法可以像Theme.of(context).somethingHere
一样有条件地获得这些颜色?
class _MainState extends State<MyApp> {
@override
Widget build(BuildContext context) {
return ChangeNotifierProvider(
create: (context) => Cart(),
builder: (context, child) => MaterialApp(
debugShowCheckedModeBanner: false,
home: const IntroPage(),
theme: ThemeData.light(),
darkTheme: ThemeData.dark(),
),
);
}
}
字符串
我尝试了Theme.of(context).cardColor
,Theme.of(context).highlightColor
和许多其他,但他们中的一些工作与轻主题,一些与黑暗的主题,但没有一个看起来很好的两个主题.有没有更好的方法来做呢?
2条答案
按热度按时间m528fe3b1#
IIUC,检查
Theme.of(context).brightness
并有条件地调整按钮颜色:字符串
示例用法:
型
vh0rcniy2#
在ThemeData()中,您可以指定许多参数,如按钮样式。
例如,在暗模式下,如果您想为应用的所有OutlinedList赋予给予绿色颜色和特定形状,只需执行以下操作:
字符串
你也可以给予特定的参数给你的light模式。这样,你的widget的样式就可以应用到你的应用中的任何地方,除非你给予一个特定的样式给你的代码元素。
参考:https://api.flutter.dev/flutter/material/ThemeData-class.html