我有一个recyclerview
,它可以水平滚动。当用户单击某个项目时,我已禁止滚动recyclerview
。现在,如果用户尝试在锁定列表时滚动列表,我想显示一个弹跳效果,表明他/她无法进一步滚动。
例如:
我有一个10 items
的列表,用户单击了5th item
。现在滚动已锁定,当用户尝试滚动时,我想显示用户无法滚动的弹跳效果。
这是我的自定义LinearLayoutManager
:
import android.content.Context
import android.support.v7.widget.LinearLayoutManager
import android.util.AttributeSet
class CustomLinearLayoutManager : LinearLayoutManager {
private var isScrollEnabled = true
constructor(context: Context) : super(context)
constructor(context: Context, orientation: Int, reverseLayout: Boolean) : super(context, orientation, reverseLayout)
constructor(context: Context, attrs: AttributeSet, defStyleAttr: Int, defStyleRes: Int) : super(context, attrs, defStyleAttr, defStyleRes)
fun setScrollEnabled(flag: Boolean) {
this.isScrollEnabled = flag
}
override fun canScrollHorizontally(): Boolean {
//Similarly you can customize "canScrollHorizontally()" for managing horizontal scroll
return isScrollEnabled && super.canScrollHorizontally()
}
}
这是我的recyclerview启用/禁用滚动代码:
val layoutManager = CustomLinearLayoutManager(this, LinearLayoutManager.HORIZONTAL, false)
binding.recyclerView.layoutManager = layoutManager
layoutManager.setScrollEnabled(false)
答案 0 :(得分:0)
您可以使用有弹性的recyclerview来实现此功能,并使用下面的链接对其进行BoucncyRecyclerview的使用,否则,您可以使用OverScroll effect of recyclerview使用recyclerview的过度滚动效果