昨天的控件点击时通过外面,加个 listener。然后如果外部设定当前选中位置,也要刷新一下页面,所以刷新逻辑放到设置 textSelectedIndex 中去。
var textSelectedIndex by Delegates.observable(-1) {
property, oldValue, newValue ->
run {
if (newValue != oldValue) {
invalidate()
}
}
}
override fun onTouchEvent(event: MotionEvent): Boolean {
when(event.action) {
MotionEvent.ACTION_DOWN, MotionEvent.ACTION_MOVE -> {
calIndex(event.y).let {
if (textSelectedIndex != it) {
textSelectedIndex = it
selectListener?.select(it)
}
}
}
}
return true
}
Kotlin 好久不用,最新的特性不知道,旧的知识也忘了许多,需要时不时查笔记。
然后上面的又暂停,有优先级更高的新任务。
抽空读了一点点《程序员修炼之道》。
网友评论