theme分为两种:全局theme和局部theme。全局Theme是由应用程序根MaterialApp创建的Theme.
Widget build(){
return MaterialApp(
...
theme: ThemeData(
...
)
)
}
局部主题是在应用程序某个小角落中用于覆盖全局主题的。有两种创建方法。
// 一是直接创建特有的ThemeData:
Widget build(){
return theme(
data: ThemeData(
...
),
child: ...
)
}
// 二是扩展父组件,扩展父组件时无需覆盖所有的主题属性。通过使用copyWith方法来实现
Widget build(){
return theme(
data: Theme.of(context).copyWith(...),
child: ...
)
}