compose它是2019 年 I/O 大會上公布的新的 UI 庫,在今年下半年會發(fā)布它的正式版菩混。
既然它是一個UI庫弱贼,那就要和我們傳統(tǒng)寫UI的方式作對比了。
①傳統(tǒng)寫UI的方式:就是先在建立一個xml文件陡鹃,在里面寫好布局好烘浦,再回到Java文件(或者是Kotlin文件)里去把控件實例化出來后,再去調(diào)用萍鲸。
②Compose這個庫:或者說它是一個框架闷叉,它重新定義了Android UI的寫法,不再使用xml文件了脊阴,而是直接在Kotlin文件(只支持Kotlin)里握侧,寫布局的代碼。官方對Compose的評價是“讓困難的事情變簡單嘿期,讓不可能的事情變得有可能”品擎。
官方對它評價這么高,那我們就來認識認識這個compose备徐。
一萄传、Compose相對于傳統(tǒng)的UI寫法,它有兩個優(yōu)勢:
(1)它是聲明式UI
之前的“命令式UI”跟“聲明式UI”的區(qū)別關(guān)鍵就在于:是否需要去手動刷新數(shù)據(jù)
傳統(tǒng)的UI方法需要我們?nèi)フ{(diào)用setXXX方法去更新數(shù)據(jù)蜜猾,而compose不用
所以秀菱,compose的優(yōu)勢就在于西设,它是一個完全的聲明式UI,我們只管把界面聲明出來后答朋,當數(shù)據(jù)變化時贷揽,我們不用手動去更新,它會自己幫我們更新數(shù)據(jù)梦碗,并顯示最新的數(shù)據(jù)禽绪,省去了我們?nèi)プ鼋缑娓碌墓ぷ鳌?/p>
傳統(tǒng) UI 能做到的事,Compose 都是可以做到的:比如自定義繪制洪规、自定義布局印屁、自定義觸摸,還有動畫斩例,Compose 都是可以做到的雄人。
(2)去掉了xml
這是compose的第二個優(yōu)勢,它拋棄了 xml 的同時還保持了寫法的簡單念赶,完全解除了混合寫法(xml+Java础钠、kotlin)所帶來的局限性,讓我們寫Ui更快速叉谜。
二旗吁、Compose API 的原則
1.一切都是函數(shù)
2.頂層函數(shù)(Top-level function)
3.組合優(yōu)于繼承
4.信任單一來源