如何动态改变RecyclerView是否可滑动

163 阅读1分钟

有个仿抖音的需求,用到RecyclerView+PagerSnapHelper方式实现

其中有个小需求是,当点击评论显示评论框后,

视频是不能滑动的,所以就需要动态改变RecyclerView是否可滑动

recyclerView会有setLayoutManager方法,我们需要自定义LayoutManager

class CustomLayoutManager(context: Context, orientation: Int, reverseLayout: Boolean) : LinearLayoutManager(
    context, orientation, reverseLayout
) {
    private var isScrollEnabled = true
    fun setScrollEnabled(flag: Boolean) {
        isScrollEnabled = flag
    }

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

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

只需要在显示评论框后,调用customLayoutManager中的setScrollEnabled(false)即可

评论框消失后,再执行customLayoutManager中的setScrollEnabled(true)

其实之前也用过,只是需要的时候并不能马上找出来,还是需要记录一下,方便以后需要的时候快速查找。