Flutter Theme主题系列之ButtonBarTheme

简介

继承关系
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树中向下传递、共享,所有才有了全局主题和局部主题的用法。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。