当前位置:嗨网首页>书籍在线阅读

16-Anko简介

  
选择背景色: 黄橙 洋红 淡粉 水蓝 草绿 白色 选择字体: 宋体 黑体 微软雅黑 楷体 选择字体大小: 恢复默认

14.6.1 Anko简介

Anko是JetBrains提供的一个使用Kotlin编写的Android DSL插件,用来辅助构建Android视图。

众所周知,Android视图都是使用XML的方式来完成布局的,这些XML可重用性差,而且在代码的运行过程中,将XML转换成Java字节码会对CPU和设备造成一定的损耗。Anko允许开发者在AnkoComponent、Activity或Fragment中使用Kotlin来编写视图,而且使用Anko编写Android应用程序更加方便快捷。

Anko主要由Anko Commons、Anko Layout、Anko SQLite和Anko Coroutines几个模块组成。

  • Anko Commons:该模块使得Android在操作intent、dialog、logging等功能时更加简单便捷。
  • Anko Layout:该模块提供快速且类型安全的动态Android布局库,使得布局开发更加高效方便。
  • Anko SQLite:该模块提供用于Android SQLite查询的DSL和分析库。
  • Anko Coroutines:该模块提供基于kotlinx协程库的相关功能。

例如,下面是使用传统XML方式构建登录页面的代码。

<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_height="match_parent"
    android:layout_width="match_parent"
    android:orientation="vertical">
    <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>
    <Button
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="登录" />
</LinearLayout>

如果用Anko来描述同样的视图,可以使用下面的代码。

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

可以看到,通过Kotlin代码实现的视图,可以在button布局中使用onClick函数来实现监听功能。