Anko是一個(gè)Kotlin類庫(kù),它讓我們開(kāi)發(fā)Android應(yīng)用更加快捷和方便,使你的代碼更加簡(jiǎn)潔和易讀;
Anko由以下幾個(gè)方面組成:
Anko組件:包含意圖、對(duì)話框、日志等的助手的輕量級(jí)庫(kù)
Anko布局:以一種快捷和安全的方式實(shí)現(xiàn)Android動(dòng)態(tài)布局
Anko數(shù)據(jù)庫(kù):查詢DSL(領(lǐng)域?qū)S谜Z(yǔ)言)和解析Android SQLite數(shù)據(jù)庫(kù)
Anko協(xié)同程序:基于kotlinx.coroutines的工具類庫(kù)
Anok組件
Anko為Android開(kāi)發(fā)者提供了一整套的工具集合,它們包含了以下內(nèi)容,但不僅限了此
Intents(意圖)
Dialogs and toasts(對(duì)話框和吐司)
Logging(日志信息)
Resources and dimensions(資源)
Anko布局
先看一個(gè)Anko布局實(shí)例(個(gè)人感覺(jué)像React-Native)
verticalLayout {
val name = editText()
button("Say Hello") {
onClick { toast("Hello, ${name.text}!") }
}
}
這段代碼是在一個(gè)線性布局中添加了一個(gè)EditText輸入框和Button按鈕,按鈕添加點(diǎn)擊事件,點(diǎn)擊事件接受一個(gè)Lambda表達(dá)式
我們來(lái)看一下Activity中完整代碼

分析:
自定義MyActivityUI集成AnkoComonent,并實(shí)現(xiàn)createView方法
ui.apply中括號(hào)中是本文的布局,verticalLayout標(biāo)明是線性布局,后面的中括號(hào)是線性布局中的元素和事件
.view轉(zhuǎn)化為view返回
MyActivityUI().setContentView中this指代MyActivityUI
結(jié)果:布局文件寫(xiě)在了代碼中,不在需要layout中的布局文件了,那預(yù)覽怎么看呢????
預(yù)覽:anko提供了第三方類庫(kù),我們可以通過(guò)導(dǎo)入plug后查看
插件 Anko support
預(yù)覽功能
安裝:打開(kāi)Plug,在輸入框中輸入anko,安裝后重啟

使用 :依次打開(kāi)view-tool windows-anko layout preview,右側(cè)顯示預(yù)覽結(jié)果

將layout中布局文件轉(zhuǎn)化為代碼文件
找出要轉(zhuǎn)化的layout布局,執(zhí)行Code->Convert to Anko Layout DSL

在包下可以看到轉(zhuǎn)化后的文件和代碼

對(duì)轉(zhuǎn)化后的文件重命名,并重寫(xiě)view中顯示內(nèi)容,后側(cè)顯示預(yù)覽結(jié)果
