2011-01-23 3 views

답변

3

이 문제로 인해 문제가 발생했습니다. 추측을 해봅시다. WebView.loadData() 또는 WebView.loadDataWithBaseUrl() (후자의 경우 null 또는 공란으로 지정)을 호출하는 대신 콘텐츠가 웹이나 파일 시스템에서로드되지 않습니다. 권리?

그래, 내가 this discussion에서 영감을받은 당신을위한 해결책을 가지고 다음 같아요 경우 : WebView.loadDataWithBaseUrl() 방법을 사용하지 null이 아니라 빈 문자열과 다른 콘텐츠 데이터와 다른 baseUrl를 제공해야합니다. SDK 설명서에 따르면 baseUrl은 데이터 내부의 상대 URL (예 : <img> 태그는 src 속성에 도메인 이름을 지정하지 않음)을 평가하는 데 사용되므로 데이터가 외부 콘텐츠를 참조하지 않으면 '가상'URL을 생성 할 수 있다고 생각합니다 (이것을 시도하지 않은).

WebView이 URL을 살펴본 것처럼 보이며, 이후의 모든 호출을 으로 변경하지 않으면 WebView과 동일한 높이가됩니다.

+0

예, 그렇습니다. 마침내 텍스트에 앵커를 삽입하고 즉시이 앵커로 점프하여 문제를 해결했습니다 (특정 금액을 스크롤하려면 높이가 필요했습니다). 그러나 나는 정말로 의문의 여지가 없어 졌다는 것을 당혹스럽게 생각합니다. ... 도와 주셔서 대단히 감사합니다! 가짜 URL을 제공하는 – nob

+0

이 작동하지 않는 것 같습니다. 나는 여전히 콘텐츠 높이를 0으로 얻고 있습니다. @nob, 앵커 솔루션을 얻는 방법에 대한 모든 포인터 ??? –

+0

그래서이 문제를 해결하기 위해 매번 임의의 URL을 생성합니다. 아름다운. – ZaBlanc

2

이 문제는 getContetHeight()에서도 발생했습니다. 처음에는 WebViewClient.OnPageFinish() 콜백에서 콘텐츠 높이가 설정되지 않았으므로 내가 한 일은 꽤 황당한 해결책이었습니다.

Handler h; 
Runnable scroll_updater = new Runnable() { 
    @Override 
    public void run() { 
     if(Thread.interrupted()) 
      return; 

     if(lyrics.getContentHeight() == 0) 
      h.postDelayed(this, 100); 

     setLyricsScroll(); 
    } 
}; 
관련 문제