Jos*_*zet 2 dart flutter flutter-layout
我正在使用内置的 Flutters,themes
如下所示:
return MaterialApp(
theme: ThemeData.light().copyWith(
primaryColor: const Color(0xFF5E975A),
bottomAppBarColor: const Color(0xff282828),
// ... And so on
),
Run Code Online (Sandbox Code Playgroud)
正如你所看到的,我正在修改现有theme
的copyWith
. 现在假设我希望某个按钮始终具有Color(0xFFFF0000)
. 有没有办法向现有主题添加新键?
像这样的东西:
ThemeData.light().copyWith(
...
).addKey(myCustomColor: const Color(0xFFFF0000))
Run Code Online (Sandbox Code Playgroud)
如果没有,定义自定义颜色的最佳实践方法是什么?我觉得仅仅声明一个全局静态变量并不是实现这个的预期方法。
Flutter 3 更新:
Flutter 在最新版本的 Flutter 中回答了这个确切的问题。您现在可以创建ThemeExtensions
.
这可能看起来像这样(定义你的之后ThemeExtension
):
MaterialApp(
theme: ThemeData.light().copyWith(
extensions: <ThemeExtension<dynamic>>[
CustomColors.light,
],
),
darkTheme: ThemeData.dark().copyWith(
extensions: <ThemeExtension<dynamic>>[
CustomColors.dark,
],
),
// other parameters...
);
Run Code Online (Sandbox Code Playgroud)
将来肯定会有更多关于此的信息,但现在请看一下这篇文章。我从那里拿了样品。
归档时间: |
|
查看次数: |
3304 次 |
最近记录: |