Anko开发之——初探

这是一篇翻译文章,原文请查看Kotlin/Anko
Anko是一个Kotlin类库,它让我们开发Android应用更加快捷和方便,使你的代码更加简洁和易读;
Anko由以下几个方面组成:

  • Anko组件:包含意图、对话框、日志等的助手的轻量级库
  • Anko布局:以一种快捷和安全的方式实现Android动态布局
  • Anko数据库:查询DSL(领域专用语言)和解析Android SQLite数据库
  • Anko协同程序:基于kotlinx.coroutines的工具类库

Anok组件

Anko为Android开发者提供了一整套的工具集合,它们包含了以下内容,但不仅限了此

  • Intents(意图)
  • Dialogs and toasts(对话框和吐司)
  • Logging(日志信息)
  • Resources and dimensions(资源)

Anko布局

先看一个Anko布局实例(个人感觉像React-Native)

verticalLayout {
val name = editText()
button("Say Hello") {
    onClick { toast("Hello, ${name.text}!") }
}
}

这段代码是在一个线性布局中添加了一个EditText输入框和Button按钮,按钮添加点击事件,点击事件接受一个Lambda表达式
我们来看一下Activity中完整代码
activity
分析:

  • 自定义MyActivityUI集成AnkoComonent,并实现createView方法
  • ui.apply中括号中是本文的布局,verticalLayout标明是线性布局,后面的中括号是线性布局中的元素和事件
  • .view转化为view返回
  • MyActivityUI().setContentView中this指代MyActivityUI

结果:布局文件写在了代码中,不在需要layout中的布局文件了,那预览怎么看呢????

预览:anko提供了第三方类库,我们可以通过导入plug后查看

插件 Anko support

预览功能

  • 安装:打开Plug,在输入框中输入anko,安装后重启
    anko support
  • 使用 :依次打开view-tool windows-anko layout preview,右侧显示预览结果

将layout中布局文件转化为代码文件

  • 找出要转化的layout布局,执行Code->Convert to Anko Layout DSL
  • 在包下可以看到转化后的文件和代码
  • 对转化后的文件重命名,并重写view中显示内容,后侧显示预览结果

参考demo