2010-11-25 5 views
7

남자! 나는 하루 종일 봤지만 여전히 해결책을 찾지 못했습니다. 그래서 여기에 내 질문을 게시하고 히트를 치길 바랍니다.웹보기 끝에보기 추가

안드로이드의 webview 끝 부분에 빈 영역을 추가하고 싶습니다. 그러나 webview의 아래쪽 패딩을 설정하려고 시도하지만 작동하지 않습니다. webview의 레이아웃은 절대 사용되지 않는 absoluteLayout이며, webview의 전체 길이를 얻고 끝에 뷰를 추가하려고 시도했지만 getContentHeight()를 사용하려고했지만 높이가 정확하지 않습니다. 웹 뷰가 끝나지 않았거나, 아마도 그림이나 다른 어떤 이유로 인해, 나는 모른다.

내 질문은, 어쨌든 webview 끝 부분에 빈 영역을 추가하는 원래 목표를 달성하는 것입니까?

미리 감사드립니다.

답변

3

나는 이전과 비슷한 것을했지만, 제대로 작동해야한다고 생각합니다.

  1. 는 오버라이드 된 onMeasure

  2. (CustomWebView 말)에 웹보기를 확장 사용자 정의 클래스를 작성

예를 들어,

public void onMeasure(int wspec, int hspec){ 
    super.onMeasure(wspec, hspec); 

    this.setMeasuredDimension(this.getMeasuredWidth(), this.getMeasuredHeight() + 200); // the padding you need. 
} 
+0

4.0.3, 4.4.3에서 작동하지 않습니다. – Cinakyn

3

Google에서 2 일이 지난 후에 마침내 원하는 결과를 얻습니다. 덕분에 xandy에게 내 방식이 도움이됩니다.

내 해결책은 다음과 같습니다. OnMeasure 메서드를 재정의하지 않고 대신 computeVerticalScrollRange 메서드를 재정의했습니다. 이렇게하면 webview의 전체 세로 길이가 늘어납니다. 끝 부분에 빈 공간을 추가하는 것과 같습니다.

protected int computeVerticalScrollRange() { 
     float density = getResources().getDisplayMetrics().density; 
     return super.computeVerticalScrollRange()+(int)(60*density); 
    } 

다시 한번 감사 xandy :

다음은 내 코드입니다.

+0

은 4.0.3, 4.4.3에서 작동하지 않습니다. – Cinakyn

-1

여기 해결책이 없다. 다른 경로를 택했다. WebView의 내용에 패딩을 추가하고 WebView의 내용을 추가하는 것을 달성하기 위해 나는 JavaScript를 사용했다.

loadUrl("javascript:document.getElementsByTagName('body')[0].style.paddingBottom='" 
    + mPadding 
    + "px'"); 

당신은로드하는 웹 페이지의 CSS를 변경할 때 조심해야 :

나는 다음과 같은 코드를 사용하는 페이지 완료 로딩

. 내 경우 엔 효과가 있었어.