마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

Webview 에서 로드된 page의 height를 정확히 구하는 방법?

0 추천

안녕하세요~!

Webview에서 로드된 page의 height를 구하고 현재 scrollY의 위치를 구해 Custom으로 fast scroll button을 동적으로 생성/업데이트를 통해 구현하려고 합니다.

그래서 아래와 같이 확인해 보았는데, 현재 scrollY 가 height를 한참 넘어가고 있습니다.

 

WebView에서 로드된 page의 정확한 크기는 어떻게 구해야 하나요?

 

webView.setOnScrollChangeListener(new View.OnScrollChangeListener() {
    @Override
    public void onScrollChange(View v, int scrollX, int scrollY, int oldScrollX, int oldScrollY) {
        Log.d("TAG", "scrollY : " + scrollY);
        Log.d("TAG", "webView.getScrollY() : " + webView.getScrollY());
        Log.d("TAG", "webView.getHeight() : " + webView.getHeight());
        Log.d("TAG", "webView.getMeasuredHeight() : " + webView.getMeasuredHeight());
        Log.d("TAG", "webView.getContentHeight() : " + webView.getContentHeight());
        Log.d("TAG", "webView.getScaleY() : " + webView.getScaleY());
    }
});

03-08 18:30:42.497 2336-2336/com.example.sinyo.framelayout_testapp D/TAG: webView.getScrollY() : 6376
03-08 18:30:42.497 2336-2336/com.example.sinyo.framelayout_testapp D/TAG: webView.getHeight() : 1024
03-08 18:30:42.497 2336-2336/com.example.sinyo.framelayout_testapp D/TAG: webView.getMeasuredHeight() : 1024
03-08 18:30:42.497 2336-2336/com.example.sinyo.framelayout_testapp D/TAG: webView.getContentHeight() : 3700
03-08 18:30:42.497 2336-2336/com.example.sinyo.framelayout_testapp D/TAG: webView.getScaleY() : 1.0

 

 

미리 답변 감사드립니다!

WolfxWolf (220 포인트) 님이 2017년 3월 9일 질문

1개의 답변

0 추천

webview에 보시면

    @Override
    protected int computeVerticalScrollRange() {
        return mProvider.getScrollDelegate().computeVerticalScrollRange();
    }

가 있습니다.

이를 활용해서 onPageFinished에서 정확한 scroll range를 받아올 수 있는데요

webview를 상속한 custom webview에서 해당 method를 불러주는 public method를 통해 받아오실 수 있습니다.

prague (26,200 포인트) 님이 2017년 3월 9일 답변
...