之前讀過(guò)一次 好多忘記了 mark一下
閱讀的時(shí)候 盡量去理解其思想,其優(yōu)秀的設(shè)計(jì) 和其邏輯實(shí)現(xiàn)
地址:https://github.com/duilib/duilib
DuiLib 是windows下一個(gè)出色的皮膚庫(kù),通過(guò)解析xml生成對(duì)應(yīng)的布局,類似于android的xml布局
DuiLib的控件都是自繪的,不是一個(gè)窗口的模式,以前的windows mfc開發(fā)的控件窗口是可以用vs工具spy++捕獲的
可以先看下目錄結(jié)構(gòu)

core.png
由所見即所得可知:
UIBase.h 基本UI
UIContainer UI裝配器
UIControl UI控件
UIDlgBuilder 對(duì)話框構(gòu)造
UIManager 窗口管理,接管整個(gè)app的窗體生命周期
UIMarkup xml解析輔助
UIRender UI渲染,預(yù)加載圖片,雙緩沖繪制圖片等
可以看出整個(gè)項(xiàng)目的類命名是非常清晰的,都以UI開頭,所見即所得,這是非常值得學(xué)習(xí)的
DuilLib其中提供了五種布局

Layout.png
所見即所得,可以看出分別是子布局,水平布局,Tab布局,Title布局,垂直布局
其中以水平布局 和垂直布局最為常用
先看xml的加載
常規(guī)xml通常是這樣
Xml.png
xml通??梢苑譃?/p>
<? ?>
注釋
<name id="1" />
<name id="2">
? <key></key>