Android kotlin NestedScrollView判断是否滚动到了每个控件的底部
要判断NestedScrollView是否滚动到了每个控件的底部,可以使用addOnScrollChangeListener()方法监听滚动事件,并使用computeVerticalScrollRange()、computeVerticalScrollOffset()和computeVerticalScrollExtent()方法来计算滚动的位置。
具体实现代码如下:
val nestedScrollView = findViewById<NestedScrollView>(R.id.nestedScrollView)
val childView = findViewById<View>(R.id.childView)
nestedScrollView.setOnScrollChangeListener { v, scrollX, scrollY, oldScrollX, oldScrollY ->
val range = childView.computeVerticalScrollRange()
val offset = childView.computeVerticalScrollOffset()
val extent = childView.computeVerticalScrollExtent()
val isScrolledToEnd = scrollY + extent >= range
if (isScrolledToEnd) {
// 滚动到了底部
// TODO: 处理滚动到底部的逻辑
} else {
// 没有滚动到底部
}
}
在代码中,nestedScrollView是NestedScrollView的实例,childView是NestedScrollView中的子View,R.id.nestedScrollView和R.id.childView需要替换为你自己的布局文件中的NestedScrollView和子View的id。
在addOnScrollChangeListener()的回调中,通过computeVerticalScrollRange()方法获取整个滚动范围,computeVerticalScrollOffset()方法获取当前滚动位置,computeVerticalScrollExtent()方法获取可视区域的高度。然后判断scrollY + extent是否大于等于range,如果是,则表示滚动到了底部。
根据实际需求,可以在滚动到底部时进行相应的处理逻辑
原文地址: http://www.cveoy.top/t/topic/iWX2 著作权归作者所有。请勿转载和采集!