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,如果是,则表示滚动到了底部。
根据实际需求,可以在滚动到底部时进行相应的处理逻辑。
原文地址: https://www.cveoy.top/t/topic/qCXs 著作权归作者所有。请勿转载和采集!