Kotlin + Android KTX让开发更简单
2018-02-28 本文已影响22人
惜梦哥哥_
写在前面
最近Google新推出了一套扩展插件 Android KTX,可以结合Kotlin写出更自然更简洁的代码,趁热来学习一下
Github地址
https:/github.com/android/android-ktx/
开始
首先进行依赖
implementation 'androidx.core:core-ktx:0.1'
官方案例对比
Kotlin创建一个Uri对象
var s = "https://www.google.com"
var uri = Uri.parse(s)
使用Android KTX + Kotlin之后
var s = "https://www.google.com".toUri()
SharedPreferences
Koltin
sharedPreferences.edit().putBoolean(key, value).apply()
Kotlin + Android KTX
sharedPreferences.edit {
putBoolean(key, value)
}
Canvas
Kotlin
val pathDiffer = Path(mPath1).apply {
op(mPath2, Path.Op.DIFFERENCE)
}
val mPaint = Paint()
canvas.apply {
val checkpoint = save()
translate(0F, 100F)
drawPath(pathDiffer, mPaint)
restoreToCount(checkpoint)
}
Kotlin + Android KTX
val pathDiffer = mPath1 - mPath2
canvas.withTranslation(y = 100F) {
drawPath(pathDiffer, mPaint)
}
在 onPreDraw 回调中执行其他任务
Kotlin
view.viewTreeObserver.addOnPreDrawListener(
object : ViewTreeObserver.OnPreDrawListener {
override fun onPreDraw(): Boolean {
viewTreeObserver.removeOnPreDrawListener(this)
actionToBeTriggered()
return true
}
})
Kotlin + Android KTX
view.doOnPreDraw { actionToBeTriggered() }
简直流畅的不要不要的,感觉有兴趣可以去看看API文档:https://android.github.io/android-ktx/core-ktx/
结尾
只有一首歌来表达现在的心情了
![](https://img.haomeiwen.com/i3026506/b07892b548a8ac40.png)