android - 如何检测滚动嵌套scrollview android在底部的位置?

标签 android android-nestedscrollview

我只想检测底部的滚动嵌套scrollview android的位置,以及调用函数。 我的代码是:

scroll.getViewTreeObserver()
      .addOnScrollChangedListener(new ViewTreeObserver.OnScrollChangedListener() {
           @Override
           public void onScrollChanged() {
               int totalHeight = scroll.getChildAt(0).getHeight();
               int scrollY = scroll.getScrollY();
               Log.v("position", "totalHeight=" + totalHeight + "scrollY=" + scrollY);
               if (scrollY==totalHeight) {
                   getPlaylistFromServer("more");
               }
           }
      });

但总高度与 MAX ScrollY 不同。如何解决?

最佳答案

NestedScrollView 参数中设置 setOnScrollChangeListener 以获取

  • NestedScrollView v(带滚动的父级)
  • int scrollY
  • int oldScrollY

检测偏移量是否在底部,需要获取内容高度v.getChildAt(0).getMeasuredHeight()的值,比较当前滚动过的高度parent,如果你有相同的值,则表示它已经到了结尾。

您可以使用 v.getMeasuredHeight()

获取父 View 的高度
NestedScrollView scroller = (NestedScrollView) findViewById(R.id.myScroll);

if (scroller != null) {

    scroller.setOnScrollChangeListener(new NestedScrollView.OnScrollChangeListener() {
        @Override
        public void onScrollChange(NestedScrollView v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) {

            if (scrollY > oldScrollY) {
                Log.i(TAG, "Scroll DOWN");
            }
            if (scrollY < oldScrollY) {
                Log.i(TAG, "Scroll UP");
            }

            if (scrollY == 0) {
                Log.i(TAG, "TOP SCROLL");
            }

           if (scrollY == ( v.getMeasuredHeight() - v.getChildAt(0).getMeasuredHeight() )) {
               Log.i(TAG, "BOTTOM SCROLL");
           }
       }
    });
}

关于android - 如何检测滚动嵌套scrollview android在底部的位置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36143802/

相关文章:

android - 导航栏隐藏的 NestedScrollView 底部 [Android]

android - CoordinatorLayout 中 ViewPager 顶部的空白

java - 警告 :Dependency org. apache.httpcomponents :httpclient:4. 0.1 被忽略

android - 如何在 Skmap 中使用 createRouteFromTrackElement()

android - 使用 adb 刷新 Android 媒体存储

android - 嵌套scrollview + recyclerview,奇怪的自动滚动行为

android - 从 NestedScrollView 中删除 OnScrollChangeListener

android - 为什么向上滚动时滚动会停在折叠的工具栏处? (不扩大显示图像)

android - Android 2.3.4 中从号码获取联系人姓名

android - 应用程序卸载后在 Android 中存储设置