Android ScrollView里嵌套RecyclerView时,在RecyclerView上滑动时出现卡顿(冲突)的现象

98 阅读1分钟

方案一:重写LayoutManager的canScrollVertically()方法

val layoutManager = object : LinearLayoutManager(this) {
    override fun canScrollVertically(): Boolean {
        return super.canScrollVertically()
    }
}

方案二:通过自定义LayoutManager,重写canScrollVertically(),向外暴露一个方法给 调用者手动设置

class MyLinearLayoutManager(context: Context) : LinearLayoutManager(context) {

    private var isScrollEnabled = false
    
    fun setScrollEnabled(enabled: Boolean) {
        this.isScrollEnabled = enabled
    }

    override fun canScrollVertically(): Boolean {
        return isScrollEnabled && super.canScrollVertically()
    }
}