7
votes

WebView infiniment élargit - comment cela peut-il être empêché?

J'utilise un webview dans mon application Android, toutefois, après avoir fini de charger - que je peux détecter via ONPAGEfini (WebView WebView, String URL) - La page continue de croître infiniment en hauteur.

Comment puis-je empêcher cette de se produire? p>

Voici ce que je fais. P>

  1. J'ai un modèle de page générique qui contient une enveloppe de défilement. La largeur et la hauteur sont définies pour faire correspondre le parent. À l'intérieur du ScrollView, il existe plusieurs éléments communs pour toutes les activités que je crées. L'un d'eux est un linearlayout où j'insère tout le contenu de l'utilisateur. P>

    02-18 14:16:06.195: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:06.394: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:06.480: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:06.527: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:06.582: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:06.632: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:06.683: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:06.734: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:06.785: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:06.875: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:06.957: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:07.058: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:07.332: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:07.398: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:07.449: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:07.496: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:07.554: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:07.605: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:07.652: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:07.707: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:07.742: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:07.792: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:07.839: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:07.902: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:07.949: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:08.015: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:08.066: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:08.113: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:08.164: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:08.214: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:08.250: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:08.300: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:08.335: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:08.386: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:08.437: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:08.484: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:08.531: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:08.566: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:08.613: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:08.667: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:08.714: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:08.750: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:08.847: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:08.902: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:08.949: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:09.003: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:09.035: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:09.085: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:09.121: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:09.167: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:09.218: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:09.253: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:09.304: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:09.367: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:09.417: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:09.476: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:09.523: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:09.585: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:09.632: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:09.664: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:09.710: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:09.765: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:09.812: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:09.863: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:09.894: VERBOSE/webview(10904): OnSizeChanged: Enter
    02-18 14:16:09.957: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:09.992: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:10.042: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:10.097: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:10.148: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:10.179: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:10.226: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:10.277: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:10.328: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:10.378: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:10.410: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:10.460: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:10.511: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:10.546: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:10.597: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:10.648: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:10.679: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:10.730: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:10.781: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:10.835: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:10.886: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:10.925: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:10.976: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:11.011: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:11.066: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:11.125: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:11.183: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:11.214: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:11.265: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:11.320: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:11.371: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:11.402: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:11.453: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:11.507: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:11.558: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:11.589: VERBOSE/webview(10904): OnSizeChanged: Enter 
    02-18 14:16:11.644: VERBOSE/webview(10904): OnSizeChanged: Enter 
    .......... This goes on ...........
    
  2. Dans ce cas particulier, le contenu est une page Web, qui charge Google Maps à l'aide de l'API Web mobile. Voici le fichier de mise en page p>

    ws.setPluginState(PluginState.ON);
    ws.setSupportZoom(false);
    ws.setLightTouchEnabled(true);
    ws.setDomStorageEnabled(true);
    ws.setAppCacheMaxSize(1024 * 1024 * 8);
    ws.setAppCachePath(context.getCacheDir().getAbsolutePath());
    ws.setAppCacheEnabled(true);
    ws.setAllowFileAccess(true);
    ws.setCacheMode(WebSettings.LOAD_NORMAL);
    ws.setJavaScriptEnabled(true);
    
    wv.setInitialScale(0);
    wv.addJavascriptInterface(new Object(), "Android");
    wv.setKeepScreenOn(true);
    
  3. Voici le code de mon activité qui initie la webview p>

    .... Webview wv = (webview) this.content.findviewyID (r.id.maps); p>

    speettings ws = wv.getsettings (); p>

    <?xml version="1.0" encoding="utf-8"?>
    
      <WebView
           android:id="@+id/maps"
           android:layout_width="fill_parent"
           android:layout_height="wrap_content"
           android:layout_centerInParent="true"
           android:layout_margin="0dp"
           android:padding="0dp"
      />
    
  4. Enfin, quand je charge les cartes via wv.loadurl ("......"); p> li> ol>

    Après la fin de la page de chargement, je reçois les journaux suivants et laView pousse dans une boucle infinie p> xxx pré>

    J'ai remarqué que cela se produit lorsque la page contient jquery. Mais la même page se charge bien dans le navigateur de stock. P>

    Une idée de cette idée, et comment cela peut-il être corrigé? P>

    Une aide significative est appréciée ... merci. p> p>


0 commentaires

3 Réponses :


-4
votes

Avez-vous essayé d'Android: Layout_height = "50DIP"

Valeur de passe pour l'attribut hauteur plutôt qu'avec Wrap_Content


5 commentaires

Cela empêche bien sûr la vue Web de grandir, mais je ne connais pas la longueur du contenu à l'avance, de fixer la hauteur si la vision Web dans mon cas n'était pas une option du début.


Au fait, j'ai essayé de simplement charger " m.yahoo.com " (tout à fait un contenu lourd et javascript -Heavy page) - Les charges de la page et la vue Web redimensionnent parfaitement le contenu parfaitement sans aucun problème. Donc, je suppose qu'il y a une vision d'erreur Web + jQuery.


Eh bien, semble que ScrollView et webview ne vont pas ensemble - période. J'ai essayé d'utiliser la vue Web en dehors de la vue de défilement (qui a beaucoup changé de structure de mes modèles de développement) - ça a fonctionné. Il n'explique toujours pas le fait que la croissance infinie n'arrive que dans les pages qui ont jQuery


Vous ne devez pas utiliser ScrollView tout en utilisant webview. Webview a déjà ScrollView.


C'est vrai que c'est vrai Hardik, cependant, si le Webview n'est pas le seul élément de la vue, je n'ai pas beaucoup de choix que d'utiliser la vue de défilement, auquel cas j'ai besoin de WEBView pour développer et envelopper son propre contenu.



6
votes

C'est une réponse tardive mais j'espère que cela aide quelqu'un. J'avais le même problème et le coupable était ce CSS sous-jacent: xxx

Ce changement corrige le problème: xxx


0 commentaires

2
votes

Ce message de blog a résolu mon problème. Je pense que ça va aider. http: //capdroid.wordpress. Com / 2014/08/07 / redimension-webview-to-Match-the-Taille de contenu / XXX


0 commentaires