내 앱에는 사용자에게 하나씩 보여주고 싶은 일련의 html 파일이 있습니다. 사용자가 페이지의 맨 아래로 스크롤 할 때 다음 페이지를로드하고 위쪽으로 스크롤 할 때 이전 페이지를로드하려고합니다. 이를 위해 사용자가 맨 아래 (또는 맨 위)로 스크롤 할 때를 알아야합니다. 그래서 나는 한 번에 하나씩 onOverScrolled()
과 onScrollChanged()
을 무시했습니다.WebView 맨 위와 맨 아래
@Override
protected void onScrollChanged(int l, int t, int oldl, int oldt)
{
super.onScrollChanged(l, t, oldl, oldt);
int height = (int) Math.floor(this.getContentHeight() * this.getScale());
int webViewHeight = this.getMeasuredHeight();
if(this.getScrollY() + webViewHeight >= height)
{
loadNextPage();
}
}
@Override
protected void onOverScrolled(int scrollX, int scrollY, boolean clampedX, boolean clampedY)
{
super.onOverScrolled(scrollX, scrollY, clampedX, clampedY);
if(clampedY)
{
if (!(canScrollVertically(SCROLL_DOWN)))
loadNextPage();
else if (!(canScrollVertically(SCROLL_UP)))
loadPrePage();
}
}
두 코드 모두 작동하지만 문제는 여러 번 호출되는 경우가 있습니다. 페이지 1에서 페이지 하단에있는 대신 2 페이지 대신 8 페이지가 표시됩니다 (숫자가 다르며 때로는 2 페이지 앞으로, 때로는 5 페이지 ...)
어떻게 할 수 있습니까? 나는 이것을 처리합니까?
자바 스크립트 – NickF
과 동일하게 수행하십시오. @NickF : 다른 점은 무엇입니까? – mehdok
잘 모르겠습니다 만,이 문제는 웹 스크롤이 오버 스크롤 모드로 유지 될 때까지 스크롤 할 때 새 페이지가로드 될 때 WebView가 다음 페이지를로드하기 때문에 발생한다고 생각합니다. – NickF