2011-03-12 3 views
1

Je fais une chose déconseillée ici, et je le sais, mais j'ai une webview imbriquée dans une vue horizontale. (Je avais besoin plus de contrôle de défilement que WebView fournit.)Contenu s'étendant pour remplir HorizontalScrollView

La mise en page ressemble à ceci:

<?xml version="1.0" encoding="utf-8"?> 
<HorizontalScrollView 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/webRel" 
    android:layout_below="@+id/titlebar" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" > 
    <WebView 
     xmlns:android="http://schemas.android.com/apk/res/android" 
     android:id="@+id/webZ" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
    /> 
</HorizontalScrollView> 

Et les résultats sont les suivants: My webview.

WebView ne remplit pas le horizontalscrollview . L'horizontalscrollview est en train de classer la vue, donc je suppose que je pourrais dire que le webview ne remplit pas la vue même si j'ai tous les deux défini sur fill_parent. Je voudrais vraiment, vraiment que quelqu'un puisse m'aider à comprendre comment le webview remplit horizontalalscrollview dans le sens de la largeur ... parce que je mesure la hauteur et utilise cette mesure pour paginer le texte (qui est ensuite affiché en morceaux dans le sens de la largeur est pourquoi j'ai choisi horizontalscrollview)

. D

(Alternativement, des suggestions pour un moyen plus propre d'avoir un défilement horizontal lisse dans une WebView serait également utile)

Répondre

6

La réponse est: utilisez android: fillViewPort. Le contenu du scrollview sera étiré pour remplir la vue.

+0

sauvé ma journée :) – tacone

+0

J'ai rencontré ce problème avant, mais aujourd'hui j'ai oublié comment je l'ai résolu . Maintenant vous me sauvez, je parie que vous êtes docteur^_ ^ – neevek

1

WebView prend déjà en charge le défilement horizontal, vous. ne devrait pas le mettre à l'intérieur d'un HorizontalScrollView.

+0

Il prend en charge le défilement horizontal, mais la seule méthode pour le déclencher est scrollTo, ce qui est vraiment soudain et ne fonctionne pas pour ce que je veux faire. HorizontalScrollView a smoothScrollTo(), que je veux utiliser. D'où la nidification peu orthodoxe. – Turnsole

+0

Mais cela ne fonctionnera que si vous définissez la largeur de WebView sur wrap_content. Et même dans ce cas, vous risquez de rencontrer des problèmes avec la vue déroulante et la vue Web qui se disputent les événements. –

+0

Dans le produit final je l'ai fonctionné comme je le veux, et il est réactif et défile magnifiquement ... juste mes calculs sont désactivés en raison de la hauteur imprévisible et donc j'ai souvent beaucoup de pages vides supplémentaires après le contenu réel . (Je sais que c'est un hack, mais à part les pages supplémentaires ça marche ... et c'est le meilleur que je peux trouver.) – Turnsole

Questions connexes