2011-03-14 5 views
16

이것은 직접적인 문제보다 시각적 인 것입니다. 그러나 WebView가 내 애플리케이션에로드되면 콘텐츠가 완전히로드 될 때까지 2-4 초 동안 화면이 흰색으로 표시됩니다. 시간은로드중인 내용의 크기에 따라 다릅니다.Android Webview의 빈 흰색로드 화면을 관리하는 방법은 무엇입니까?

로드 할 때 화면을 새로 고칠 수 있도록이 방법을 관리 할 수 ​​있습니까? '로딩 ...'애니메이션 또는 이와 비슷한 것? 나는 평범한 흰색 화면을 내 사용자에게 보여주고 싶지 않습니다.

나는 WebView를로드하는 스플래시 화면이 있습니다. 그 초기 빈 휴지기 (로드하는 동안) 후에 WebView 잘 작동하지만 페이지가로드 될 때까지 또는 진행률 로더가있는 검은 색 화면이있을 때까지 특정 화면에서 누르고 싶습니다.

짐을 감지하는 것이 있습니까? 그렇다면 트리거로 사용할 수 있습니다.

아무도이 빈 화면을 관리하는 방법을 알고 있습니까?

감사합니다.

/r

답변

0

혹시이 이전 호를 살펴볼 수 있습니다.

How to listen for a WebView finishing loading a URL?

+0

덕분에이 코드를 넣어. 나는 틀린 키워드에 찾고 있었다! – Robbe

+0

때때로 페이지가 완전히 렌더링되지 않아도 onPageFinished가 호출되므로 웹보기에서 빈 화면이 표시 될 수 있습니다. 페이지가 완전히 렌더링 될 때까지 진행률 대화 상자를 표시하려면 onLoadResource를 사용하고 페이지의 진행 상태를 확인해야합니다. 이 대답을 확인하십시오 http://stackoverflow.com/a/31537328/1066839 – John

21

당신은 대안으로 웹보기를 투명하게 만들 수 있습니다 :

webview.setBackgroundColor(0x00000000); 
+0

이것은 저를 위해 그것을 고쳤다 jammy입니다. –

+0

'android : background = "@ android : color/transparent"를 XML에 추가해도 아무런 효과가 없습니다. 'webView.setBackgroundColor (Color.TRANSPARENT)'않습니다. –

2

이에 대한 대답이 더 좋은 답변이 없습니다 것입니다. 당신이 원하는대로, 명시된 바와 같이 webview 새로운 콘텐츠가로드 될 때까지 현재의 콘텐츠를 보여줍니다 ... 일반 브라우저처럼. 그것은 그렇게하지 않을 것입니다.

로딩 애니메이션을 표시 할 수 있지만 여전히 좋은 사용자 환경은 아닙니다. 전체 화면 유형의 애니메이션을 만들면 사용자는 깜박 거리는 화면으로 방해받습니다. 위쪽/아래쪽에서 브라우저 유형 진행을하면 여전히 페이지가 대부분 흰색이므로 이상하게 보입니다. 완벽한 시작 -

8

는 간단히에서 onCreate에

   ProgressDialog _dialog ;     
       my_web_view.setWebViewClient(new WebViewClient(){ 


     @Override 
     public void onPageStarted(WebView view, String url, Bitmap favicon) { 
     // TODO Auto-generated method stub 
     _dialog =ProgressDialog.show(Store_locator.this, "", "Please wait..."); 
     super.onPageStarted(view, url, favicon); 
     } 
     @Override 
     public void onPageFinished(WebView view, String url) { 
     // TODO Auto-generated method stub 
     super.onPageFinished(view, url); 
     _dialog.dismiss(); 
     } 

     @Override 
     public void onReceivedError(WebView view, int errorCode, 
     String description, String failingUrl) { 
     // TODO Auto-generated method stub 
     super.onReceivedError(view, errorCode, description, failingUrl); 
     try{ 
     _dialog.dismiss(); 
     }catch (Exception e) { 
     // TODO: handle exception 
     } 
     } 

     }); 
관련 문제