有的时候在整个App的风格中,我们经常使用统一风格的主题颜色及文字,函数Theme.of(context)可以通过上下文的关系来获取整个应用的主题。
示例代码如下:
import 'package:flutter/material.dart';
import 'package:flutter/foundation.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
final appName = '自定义主题';
return new MaterialApp(
title: appName,
theme: new ThemeData(
brightness: Brightness.light, //应用程序整体主题的亮度
primaryColor: Colors.lightGreen[600], //app主要部分的背景色
accentColor: Colors.orange[600], //前景色(文本按钮等)
),
home: new MyHomePage(
title: appName,
),
);
}
}
class MyHomePage extends StatelessWidget {
final String title;
const MyHomePage({Key key, this.title}) : super(key: key);
@override
Widget build(BuildContext context) {
// TODO: implement build
return new Scaffold(
appBar: new AppBar(
title: new Text(title),
),
body: new Center(
child: new Container(
color: Theme.of(context).accentColor,
child: new Text(
'带北京颜色的文本组件',
style: Theme.of(context).textTheme.title,
),
),
),
);
}
}