简介
继承关系
Object> DiagnosticableTree> Widget> ProxyWidget> InheritedWidget> ButtonBarTheme
ButtonBarTheme通常用于ButtonBar的主题使用,它有一套默认主题,在你没有做变更的前提下,作为ThemeData构造函数的参数,你可以轻松做到全局改主题样式。简单用法如下:
///全局配置
ThemeData(
buttonBarTheme: ButtonBarThemeData(
buttonTextTheme:ButtonTextTheme.normal
)
)
///全局用法
ButtonBar(
children: <Widget>[
RaisedButton(child: Text('老孟'),onPressed: (){
},),
FlatButton(child: Text('专注flutter分享'),onPressed: (){
},)
],
)
///局部用法
ButtonBarTheme(
data: ButtonBarThemeData(buttonTextTheme: ButtonTextTheme.accent),
child: ButtonBar(
children: <Widget>[
FlatButton(
onPressed: () {},
child: Text("局部用法测试"),
)
],
),
)
图示:构造函数
const ButtonBarTheme({
Key key,
@required this.data,
Widget child,
}) : assert(data != null), super(key: key, child: child);
- key 组件的唯一标示。
- data 主题的数据来源ButtonBarThemeData,详细的配置信息。
- child 通常ButtonBar组件,默认继承ButtonBarThemeData的配置,设置局部主题时使用。
总结
ButtonBarTheme 是一个InheritedWidget组件,它可以高效的将数据在Widget树中向下传递、共享,所有才有了全局主题和局部主题的用法。