2011-08-29 14 views
6

Quando si visualizza uno WebView a schermo intero (fill_parent sia in larghezza che in altezza) in Honeycomb, l'HTML sfarfalla un istante quando viene caricato con orientamento orizzontale.Sfarfallio HTML su sfondo a nido d'ape

Dato questo codice, si dovrebbe vedere solo lo sfondo giallo (colore WebView) o lo sfondo blu (colore corpo html). Ma quando si passa al paesaggio, è possibile vedere lo schermo parzialmente riempito in blu e dietro il giallo.

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 

    WebView webView = (WebView) findViewById(R.id.webview); 
    webView.setBackgroundColor(Color.YELLOW); 
    webView.loadData("<html><body style='background-color:#DDF'><p>Hello world!!!</p></body></html>", "text/html", "UTF-8"); 
} 

È come se l'HTML fosse stato sottoposto a rendering prima di conoscere la dimensione del contenitore e quindi viene ridimensionato.

Questo può essere riprodotto in Android Honeycomb in orientamento orizzontale, sia nell'emulatore che in un dispositivo.

Qualche idea?

risposta

1

Mi rendo conto che questo post è vecchio ma credo che l'input potrebbe essere ancora utile. Non ho una tavoletta davvero a nido d'ape per testare il cambiamento di orientamento, ma questo dovrebbe funzionare a prescindere.

Sono rimasto estremamente perplesso da questo, ma poi ho notato il problema. semplicemente cambiare stile da "background-color" a solo "colore":

+0

che cambia il colore del carattere, non il colore di sfondo. –

+0

Ad ogni modo, l'unico scopo del colore è mostrare questo strano comportamento di WebView. – willy

+0

Se dovessi indovinare, è molto probabile che Android ridimensioni il contenitore una volta completata la rotazione, in modo da ottenere un leggero ritardo e vedere lo sfondo giallo. Di nuovo, solo un'ipotesi. –

2

provare a disabilitare l'accelerazione hardware per tale attività nel manifesto

<activity android:name="com.sample.activity" 
android:hardwareAccelerated="false"/> 
+0

Ho avuto lo stesso comportamento su un Nexus 4 con Android 4.3. Entrambi gli orientamenti finché non ho fatto scorrere la pagina completamente verso il basso. Il tuo suggerimento ha funzionato splendidamente! –