【发布时间】:2019-05-31 02:19:07
【问题描述】:
我目前正在使用 CupertinoApp class 和 Cupertino widgets 在 Flutter 中实现 iOS 风格的应用程序。现在我想为应用程序实现一个不同的主题(就像feedly 那样),以便用户可以在运行时在两者之间切换。
与MaterialApp 不同,CupertinoApp 没有设置主题的属性。
具有主题属性的MaterialApp:
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(title: 'Flutter Demo Home Page'),
);
}
}
没有主题属性的CupertinoApp:
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
// This widget is the root of your application.
@override
Widget build(BuildContext context) {
return CupertinoApp(
title: 'Flutter Demo',
// theme: ThemeData(
// primarySwatch: Colors.blue,
// ),
home: MyHomePage(title: 'Flutter Demo Home Page'),
);
}
}
它看起来像某人。正在开发 CupertinoTheme,它实际上似乎是 MaterialApp 的主题,而不是 CupertinoApp 的主题。
在库比蒂诺风格的应用程序(例如深色和浅色主题)中,在运行时定义和更改主题的推荐方法是什么?
【问题讨论】:
标签: flutter