当 Kotlin 遇上 Android KTX,岂止丝滑?
Posted 安卓笔记侠
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了当 Kotlin 遇上 Android KTX,岂止丝滑?相关的知识,希望对你有一定的参考价值。
Kotlin 语言自从得到 Google 的官方认定之后,在 android 开发这条路上的发展可谓是一马平川。不仅是 Android Studio 3.0 开始默认自动支持 Kotlin 语言,还有一件更为惊喜的事。
Google 于上周正式对外发布 Android KTX 预览版。
Android KTX 是什么呢?简单来说,它就是类似于我们开发中常用的 Support Library 这种支持类库,提供一些非常人性化的 APIs 来帮助使用开发人员更简洁、更符合编程习惯地编写 Kotlin 代码。
接下来举几个例子,来见证一下使用 Android KTX 框架前后,我们的 Kotlin 代码究竟变化多少,是不是更加简洁、自然一些。
String to Uri
使用 Kotlin 将一个 String 对象转化成 Uri 对象是这么写的:
val uri = Uri.parse(myUriString)
Android KTX 框架在 String 的基础上进行扩展,增加更多的方法,所以上面这行代码便能这么写:
val uri = myUriString.toUri()
这样的话,你不必再单独引入 Uri 类,写起来是不是有一种行云流水、一气呵成的感觉?
SharedPreferences
Kotlin:
sharedPreferences.edit()
.putBoolean(key, value)
.apply()
Kotlin with Android KTX:
sharedPreferences.edit {
putBoolean(key, value)
}
canvas path 操作
Kotlin:
val pathDifference = Path(myPath1).apply {
op(myPath2, Path.Op.DIFFERENCE)
}
val myPaint = Paint()
canvas.apply {
val checkpoint = save()
translate(0F, 100F)
drawPath(pathDifference, myPaint)
restoreToCount(checkpoint)
}
Kotlin with Android KTX:
val pathDifference = myPath1 - myPath2
canvas.withTranslation(y = 100F) {
drawPath(pathDifference, myPaint)
}
View onPreDraw 动作
Kotlin:
view.viewTreeObserver.addOnPreDrawListener(
object : ViewTreeObserver.OnPreDrawListener {
override fun onPreDraw(): Boolean {
viewTreeObserver.removeOnPreDrawListener(this)
actionToBeTriggered()
return true
}
})
Kotlin with Android KT:
view.doOnPreDraw { actionToBeTriggered() }
诸如此类的例子还有很多。可以看出,使用 Android KTX 极大地简化我们的 Kotlin 代码。
只要你在 app/build.gradle 文件中引入 Android KTX 的依赖配置:
repositories {
google()
}
dependencies {
// Android KTX for framework API
implementation 'androidx.core:core-ktx:0.1'
...
}
开发时,IDE 会自动根据你的代码智能提示,自动补全相关代码。
还有一点值得一提的是,Android KTX 使用一个全新的 包名前缀:androidx。Google 希望将来提供 Android Support Library 包时,开发人员能够明显地区分出 **android.* 与 androidx.* **这两种 API 的使用。这是一个体贴入微的设计细节,Google 想得非常周到。
Android KTX 的源码已经放在 GitHub 仓库中,目前还在完善改进当中:
https://github.com/android/android-ktx/
相关推荐:
以上是关于当 Kotlin 遇上 Android KTX,岂止丝滑?的主要内容,如果未能解决你的问题,请参考以下文章
谷歌发布 Android KTX 预览版:提供相应 API 层,让Kotlin开发更简洁
Android开发的福音,谷歌隆重推出 Android KTX预览版,让 Kotlin 的开发更美妙!
官方新出的 Kotlin 扩展库 KTX,到底帮你干了什么?