Anko初探

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é)果

參考demo

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容