要判断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判断是否滚动到了每个控件的底部

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

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