常规代码实现
项目中有一个 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
可以看到,比原有的代码简洁了不少~



如果对你有帮助的话,欢迎一键三连+关注哦~