簡介
繼承關系
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樹中向下傳遞、共享,所有才有了全局主題和局部主題的用法。