看啥推荐读物
专栏名称: i校长
抽象化是一种非常的不同于模糊化的东西 … 抽...
目录
相关文章推荐
今天看啥  ›  专栏  ›  i校长

Flutter Theme主题系列之ButtonBarTheme

i校长  · 简书  ·  · 2020-05-17 11:16

简介

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




原文地址:访问原文地址
快照地址: 访问文章快照