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 管理器