2011-03-14 16 views
16

Bu, doğrudan bir sorundan daha görsel bir şeydir, ancak bir WebView uygulamada yüklendiğinde, içerik tam olarak yüklenene kadar ekran 2-4 saniye arasında boş beyazdır. Zaman, yüklenen içeriğin boyutuna bağlıdır.Bir Android Web Görüntünün Boş Beyaz Yükleme ekranı nasıl yönetilir?

Bunu yönetmek için bir yol var mı, böylece ekran yalnızca yüklendiğinde içeriğe yenilenecek mi? Bir "yükleniyor ..." animasyonu veya benzer bir şey gibi bir şey? Sadece beyaz ekranın kullanıcılarıma sunulmasını istemiyorum.

WebView yükleyen bir açılış ekranım var. WebView, ilk boş duraklamadan sonra (yükleme sırasında) iyi çalışır, ancak sayfa yüklenene veya ilerlemeyi yükleyen bir siyah ekrana sahip olana kadar belirli bir ekranda tutmak isterim.

Bir yükü tam olarak algılayan bir şey var mı? Eğer böyle olsaydı, bunu bir tetikleyici olarak kullanabilirdim.

Bu boş beyaz ekranı yönetmek için bir yöntem bilen var mı?

Teşekkürler!

/r

cevap

0

Belki bu önceki sayıya bir göz atabilirsiniz.

How to listen for a WebView finishing loading a URL?

+0

Teşekkür Bu kodu koydu. Yanlış anahtar kelimeleri araştırıyordum! – Robbe

+0

Bazen, sayfa tam olarak oluşturulmasa bile onPageFinished çağrılır, Böylece web görünümünde boş bir ekran alabilirsiniz. İlerleme diyaloğunu sayfanın tamamen oluşturulmasına kadar göstermek için onLoadResource'ı kullanmanız ve sayfanın ilerleyişini kontrol etmeniz gerekir. Bu cevabı kontrol edin http://stackoverflow.com/a/31537328/1066839 – John

21

Sen alternatif olarak webview şeffaf yapabilir:

webview.setBackgroundColor(0x00000000); 
+0

Bu, benim için sabitleyen bir reçeteydi. –

+0

XML'de "android: background =" @ android: color/transparent "' ifadesinin hiçbir etkisi yoktur. webView.setBackgroundColor (Color.TRANSPARENT) 'yapar. –

2

Bunun cevabı hiç iyi yanıt var olmasıdır. İstediğiniz gibi, web görünümü, yeni içerik yüklenene kadar mevcut içeriği gösterir ... tıpkı normal bir tarayıcı gibi. Bunu yapmaz.

Yükleme animasyonlarını gösterebilirsiniz, ancak yine de iyi bir kullanıcı deneyimi değildir. Tam ekran bir animasyon türünü yaparsanız, kullanıcı yanıp sönen ekranlarla sarılır. Üstte/altta tarayıcı tipi bir ilerleme yaparsanız, sayfa beyazının çoğuna sahip olduğunuz için tuhaf görünüyor. Mükemmel bir başlangıç ​​-

8

Basitçe onCreate içinde

   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 
     } 
     } 

     }); 
İlgili konular