要判断 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.nestedScrollViewR.id.childView 需要替换为你自己的布局文件中的 NestedScrollView 和子 View 的 id。

在 addOnScrollChangeListener() 的回调中,通过 computeVerticalScrollRange() 方法获取整个滚动范围,computeVerticalScrollOffset() 方法获取当前滚动位置,computeVerticalScrollExtent() 方法获取可视区域的高度。然后判断 scrollY + extent 是否大于等于 range,如果是,则表示滚动到了底部。

根据实际需求,可以在滚动到底部时进行相应的处理逻辑。

Android Kotlin NestedScrollView 判断滚动到底部:简单易懂的代码示例

原文地址: https://www.cveoy.top/t/topic/qCXs 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录