2013-06-26 20 views
16

Sto caricando i dati da una stringa e la prima volta quando scorro la pagina Web lampeggia un paio di volte.Strana webview lampeggiante nero durante lo scorrimento

Ecco il mio codice dove caricare i dati:

webview.loadDataWithBaseURL(null, message.getmContent(), "text/html", "UTF-8", null); 

E il xml:

<WebView 
     android:id="@+id/web_content" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:layout_above="@+id/footer" 
     android:layout_below="@id/message_title" 
     android:layout_margin="4dp" 
     /> 
+0

hai messo la tua web view all'interno di scroll view? Se sì, provare a rimuovere la vista di scorrimento. –

+0

provare android: focus = false –

+0

quindi impostare android: scrollingCache = "false" –

risposta

30

La soluzione è l'aggiunta di:

webview.setLayerType(View.LAYER_TYPE_SOFTWARE, null); 
webview.getSettings().setCacheMode(WebSettings.LOAD_NO_CACHE); 
webview.getSettings().setRenderPriority(WebSettings.RenderPriority.HIGH); 
+0

webview.getSettings(). SetRenderPriority (WebSettings.RenderPriority.HIGH); è deprecato nel livello API 18. http://stackoverflow.com/a/23896233/684582 –

+2

Il software LayerType causa una visualizzazione Web vuota per me. La soluzione migliore che ho trovato era usare setBackgroundColor() con un oggetto Color (importante, non un int). – Mdlc

+0

* il metodo setRenderPriority() * è stato ritirato al livello API 18. Non è consigliabile regolare le priorità del thread e questo non sarà supportato nelle versioni future. – anivaler

1

Dopo aver risolto con la soluzione di cui sopra , My WebView autoFocused su scroll down. Ho risolto il tremolio e auto-scroll da:

webView.setFocusable(false); 
webView.setFocusableInTouchMode(false); 
0

per caricare i dati dalla cache

webview.getSettings().setCacheMode(WebSettings.LOAD_CACHE_ELSE_NETWORK); 
webview.setLayerType(View.LAYER_TYPE_SOFTWARE, null); 
webview.loadUrl(Your URL To Load); 
+0

Hai letto la domanda? – user1940676

+0

Durante l'utilizzo di LOAD_NO_CACHE ho un leggero ritardo nel caricamento e quando usiamo questo è listView che ogni volta ricrea la vista non funziona bene per evitare il lampeggiare, quindi ho usato LOAD_CACHE_ELSE_NETWORK per risolvere il problema. webview che viene utilizzato in listview –

+0

Hai provato ad aggiungere android: cacheColorHint = "@ null" alla listview? – user1940676

1

E 'anche possibile impostare software tipo di livello in file xml e funziona bene per me.

android:layerType="software" 
+0

Questa è l'unica soluzione che ha funzionato per me senza inconvenienti. –

Problemi correlati