2011-06-16 3 views
0

J'ai trouvé que cette question a été posée avant How to resolve overlapping the content of the webview ici, mais il était fermé pour une raison quelconque. Mais voici ce qui arrive. J'ai créé un webview, appliqué un arrière-plan transparent, mais quand j'essaie de charger quelque chose et de recharger quelque chose, le contenu le plus ancien reste sur le webview et le plus récent le chevauche. Voici une photo qui l'explique.Android Webview Content se chevauchant tout en utilisant fond transparent

Overlapped

donc je crée une application blagues, et j'ai ajouté WebView. Ensuite, j'ai ajouté de la transparence et le bouton de blague aléatoire recharge la page Web de sorte que le webview peut obtenir une autre blague. Mais il se recoupe juste à la place. Des solutions? Voici mon morceau de code

 Button random = (Button) findViewById(R.id.reload); 
    final WebView web = (WebView) findViewById(R.id.webView); 
    web.setBackgroundColor(Color.TRANSPARENT); 
    web.setWebViewClient(new WebViewClient()); 


    String selected = (String) getIntent().getCharSequenceExtra("selected"); 
    final String url = "http://someurl.com/?s=dirty&x=" + selected; 
    web.loadUrl(url); 

    random.setOnClickListener(new View.OnClickListener() { 

     public void onClick(View v) { 
      web.loadUrl(url); 
     } 
    }); 

Toute aide serait vraiment apprécié :)

Répondre

3

Essayez avant de faire web.loadUrl(url); faire web.clearView();

Voir docs.

+0

Cela rend l'application vraiment très lente, et n'est pas la solution idéale. –

+0

@Abhinav Down-vote est pour si vous trouvez la réponse inutile, et non pour "pas le correctif parfait", mais en tout cas, je ne pense pas que faire un appel à clearView entre les charges devrait ralentir votre app sensiblement perceptible. Notez que je ne suggère pas une autre charge, mais juste avant la charge que vous devez faire, appelez 'clearView'. – kabuko

+0

"clearView()" est déconseillé dans l'API Niveau 18, essayez "loadUrl (" about: blank ");" à la place – Sarun1001