自定义view中实现scrollbar需要实现下面三个方法
override fun computeVerticalScrollRange(): Int {
//当前自定义view的高度
return height
}
override fun computeVerticalScrollExtent(): Int {
//可以理解成scrollbar进度条的长度
return 100
}
override fun computeVerticalScrollOffset(): Int {
//根据屏幕显示的高度,与view实际的高度,计算显示的位置的比例,然后减去进度条的长度
//(减去进度条的长度100的目的是防止进度条在顶部或到底部时候滑动被全部被隐藏)
return (scrollY / (viewHeight - screenHeight).toFloat() * (screenHeight - 100)).roundToInt()
}
下图为具体每个参数代表值的含义

网友评论