Aller au contenu

Problème avec WebView


sbj

Recommended Posts

Bonjour,

J'ai un problème avec l'affichage de ma WebView : sa hauteur dépasse (parfois, souvent... à vrai dire aléatoirement!!) la hauteur de son contenu...

En fait ma WebView n'ai pas scrollable, car elle est contenu dans une ScrollView avec d'autres composants.

Pour être plus claire, dans mon Activity j'ai deux EditText, une ImageView, ma WebView, puis un troisième EditText (qui se retrouve donc aléatoirement distant de la WebView du dessus!)

Dans mon Layout:

<ScrollView 
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<LinearLayout 
android:layout_width="fill_parent"
android:layout_height="wrap_content" >

<TextView 
android:id="@+id/txtArticleTitre"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<TextView 
android:id="@+id/txtArticleDate"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<LinearLayout 
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:gravity="center_horizontal" >
<ImageView 
android:id="@+id/imgArticle"
android:layout_width="320dip"
android:layout_height="220dip"
android:adjustViewBounds="true">
</ImageView>
</LinearLayout>

<WebView
android:id="@+id/wvArticle"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
</WebView>

</LinearLayout>
</ScrollView>

Dans mon Activity:

WebView wv = (WebView)findViewById(R.id.wvArticle);
wv.setScrollContainer(false);
WebSettings webSettings = wv.getSettings();
webSettings.setJavaScriptEnabled(true);
webSettings.setPluginsEnabled(true);
webSettings.setBuiltInZoomControls(false);
webSettings.setSupportZoom(false);
String pageHtml = "......"; // String contenant mon code HTML pour ma WebView
wv.loadDataWithBaseURL(null, pageHTML, "text/html", "UTF-8", null);

J'attends un petit indice qui pourrait me donner une piste à explorer, car je désespère!! Ça fait plusieurs jours que je cherche en vain...

Merci d'avance :)

Lien vers le commentaire
Partager sur d’autres sites

Salut sbj!

Première chose (qui n'a rien à voir...): Pourquoi avoir mis ton ImageView dans une LinearLayout?

Pour ton problème, as-tu essayé d'activer le zoom sur ta WebView?

webSettings.setBuiltInZoomControls(true);
webSettings.setSupportZoom(true);

En fait, tout dépend du résultat que tu veux obtenir à l'arrivée...

Tu peux également jouer avec les paramètres de ta WebView:

<WebView
android:id="@+id/wvArticle"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
</WebView>

Fill_parent: Prend la largeur du layout parent

Wrap_content: Peu importe le layout parent, la web view prendra la place qu'elle a besoin de prendre, même en dépassant...

Lien vers le commentaire
Partager sur d’autres sites

Salut sbj!

Première chose (qui n'a rien à voir...): Pourquoi avoir mis ton ImageView dans une LinearLayout?

Pour ton problème, as-tu essayé d'activer le zoom sur ta WebView?

webSettings.setBuiltInZoomControls(true);
webSettings.setSupportZoom(true);

En fait, tout dépend du résultat que tu veux obtenir à l'arrivée...

Tu peux également jouer avec les paramètres de ta WebView:

<WebView
android:id="@+id/wvArticle"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
</WebView>

Fill_parent: Prend la largeur du layout parent

Wrap_content: Peu importe le layout parent, la web view prendra la place qu'elle a besoin de prendre, même en dépassant...

Merci pour ta réponse.

En fait pour ce qui est de l'ImageView: elle est dans un LinearLayout dont la gravity est "center" pour que l'image soit centrer dans mon écran (car la taille de l'image est fixée dans le code...)

Bref, pour l'ImageView tout marche nickel en tout cas...

Et pour ce qui est de ma WebView : j'ai désactiver le zoom, car je modifie la taille de la police avec une fonction javascript (J'ai deux bouton: + et - qui appellent respectivement les fonctions AgrandireTaille() et RéduireTaille() définies dans mon String pageHtml... et ça marche très bien aussi!)

Voici mon String pageHtml pour que ce soit plus claire:

String pageHTML = "<HTML> " +
     "<HEAD>" +
     "<link rel=\"stylesheet\" href=\"css/all.css\"> " +
     "<link rel=\"stylesheet\" href=\"css/mdpi.css\" media=\"only screen and (-webkit-max-device-pixel-ratio:1.0) and (max-device-width:480px)\">" +
     "<link rel=\"stylesheet\" href=\"css/hdpi.css\" media=\"only screen and (-webkit-min-device-pixel-ratio:1.5)\">" +
     "<meta name=\"viewport\" content=\"user-scalable=no, width=device-width, target-densitydpi=device-dpi\">" +
     "<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\" />" +
     "<TITLE>Android| "+title+"</TITLE>" +
     "<STYLE type=\"text/css\">" +
     "P { text-align : justify; font-size:16px;  }" +
     "BODY { height : 100%; width : auto;  }" +
     ".conteneur_liste {" +
     "max-width : "+mScreenWidth+"px;" +
     "position: relative;" +
     "float: left;" +
     "height: auto;" +
     "font-family:Arial, Helvetica, sans-serif;" +
     "font-size: 16px;" +
     "text-align: justify;" +
     "bottommargin: 0; " +
     "}" +
     ".conteneur_liste img {" +
     "width : "+(mScreenWidth-35)+"px;" +
     "position:relative;" +
     "float:left;" +
     "height:auto;" +
     "padding-left:5px;" +
     "padding-bottom:10px;" +
     "margin:0;" +
     "}" +
     ".auteur {" +
     "height:auto;" +
     "text-align:right;" +
     "color:black;" +
     "font-family:bold;" +
     "padding-bottom:10px;" +
     "}" +
     "</STYLE>"  +
     "<script type=\"text/javascript\">" +
     "var currentSize = 16;" +
     "var minSize = 12;" +
     "var maxSize = 24;" +
     "var h = 0;" +
     "function AgrandirTaille() {" +
     "currentSize += 2;" +
     "currentSize = (currentSize<minSize) ? minSize : ((currentSize>maxSize) ? maxSize : currentSize);" +
     "document.getElementById(\"content\").style.fontSize = currentSize+'px';" +
     "}" +
     "function ReduireTaille() {" +
     "currentSize = currentSize-2;" +
     "currentSize = (currentSize<minSize) ? minSize : ((currentSize>maxSize) ? maxSize : currentSize);" +
     "document.getElementById(\"content\").style.fontSize = currentSize+'px';" +
     "}" +
     "</script>" +
     "</HEAD>" +
     "<BODY>" +
     "<div class=\"conteneur_liste\">"+
     "<p id=\"content\">"+description+"</p>"+
     "<p class=\"auteur\">"+auteur+"</p>"+
     "</div>"+
     "</BODY>" +
     "</HTML>";

Concernant les paramètres de la WebView, même avec:

<WebView
android:id="@+id/wvArticle"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
</WebView>

... j'ai toujours le même problème!!!!!!

Je ne vois pas du tout d'où peut provenir l'erreur!! :mad:

Lien vers le commentaire
Partager sur d’autres sites

Archivé

Ce sujet est désormais archivé et ne peut plus recevoir de nouvelles réponses.

×
×
  • Créer...