常规代码实现
项目中有一个 RecyclerView 列表的单选功能,于是我们可以凭借经验写出下面的代码:
private var lastPos = 0
private var currentPos = 0
fun setCurrentSelected(position: Int) {
if (currentPos != position) {
lastPos = currentPos
currentPos = position
notifyItemChanged(lastPos)
notifyItemChanged(currentPos)
}
}
然后我们使用的时候这样调用:
setCurrentSelected(1)
使用 kotlin 语法糖
我们都知道 kotlin 是一门现代、简洁、安全的编程语言。那么,我们有没有更简洁的写法呢?当然有,只需要像下面这样写即可:
private var selectedPosition by Delegates.observable(0) { _, oldPos, newPos ->
if (oldPos != newPos) {
notifyItemChanged(oldPos)
notifyItemChanged(newPos)
}
}
使用的时候像下面这样调用即可:
selectedPosition = 1
可以看到,比原有的代码简洁了不少~
如果对你有帮助的话,欢迎一键三连+关注哦~