我只想检测底部的滚动嵌套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()
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/