TextStyle 管理器
场景
我们在项目中经常使用Text这个Widget 那么设置他的TextStyle 相对代码比较多,相同的属性,我们很多地方要用到,那么就用到了很多重复的代码。
常见写法
写法1
直接在代码里写TextStyle
Text(
"Scaffold",
style: new TextStyle(color: Color(0xFF333333), fontSize: 14.0),
),
好处
无
缺点
不灵活,不方便统一修改,代码重复
写法2
将TextStyle 抽出放在外面 用值简写
var blackTextStyle =
new TextStyle(color: const Color(0xFF333333), fontSize: 15.0);
使用
Text("Scaffold",style: blackTextStyle,),
好处
可以文件中全局使用和控件,跨文件就不行
缺点
总的来说还是不灵活,代码繁杂
写法3
TextStyleUtils 模式 单独新建一个文件存放TextStyle
使用时导包,传入对应值,通过switch return
使用
new Text(
"照片显示",
style: getTextStyle("f2f228"),
)
好处
有统一管理的方式,方便修改和新增
缺点
不灵活,需要String去匹配,用起来麻烦
最终方案
你没有见过的全新版本,灵感来自于Icons.icon
我们在使用icon的时候,是可以直接在icons. 有提示的 这样非常的方便。
那么他是怎么实现的呢,大家可以看看源码,我这里简单的讲一下,他将需要的widget变成的不可变静态的。
使用 和icons 一样
是不是一样的非常方便
我们看这个TextStyleMs
好处
有统一管理的方式,方便修改和新增,非常方便的使用,和icons一样
缺点
暂无
github地址TextStyle 管理器