FrameLayout à l'intérieur de la ScrollView
Je suis nouveau sur android, le développement et la j'ai le problème suivant.
J'ai besoin d'utiliser FrameLayout
à l'intérieur de ScrollView
pour faire de défilement. J'ai écrit ce
<ScrollView
android:id="@+id/scrollView1"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:background="#00ff00">
<FrameLayout
android:id="@+id/frameLayout"
android:layout_width="match_parent"
android:layout_height="500dp"
android:background="#ff0000">
</FrameLayout>
</ScrollView>
Mais cela ne fonctionne pas. J'ai essayé en RelativeLayout
et cela a fonctionné, mais j'ai besoin de l'utiliser pour FrameLayout
.
Des idées?
OriginalL'auteur nabroyan | 2013-03-01
Vous devez vous connecter pour publier un commentaire.
android:fillViewport="true" résout ce problème.
android:fillViewport, Définit si la scrollview devrait s'étirer son contenu pour remplir la fenêtre d'affichage.
OriginalL'auteur Sreedhu Madhu
J'ai essayé de nombreuses variantes pour la résolution de ce problème, y compris les réponses ici, mais personne n'a été utile.
ScrollView
encapsule toujoursFrameLayout
, mais tout est normal avecRelativeLayout
,LinearLayout
...J'ai trouvé une solution pour cela - pour régler la hauteur minimale de
FrameLayout
. Vous pouvez définir dynamiquement la hauteur minimale parsetMinimumHeight()
méthode.OriginalL'auteur nabroyan
Votre exemple xml est très bon, la seule chose que je peux voir, c'est : si le ScrollLayout parent est plus grand que 500dp de ne pas défiler.
En effet, le rouleau est utilisé uniquement si le contenu est plus grand que la scrollview.
ici, vous définissez votre contenu à la hauteur de 500dip et vous scrollview à "match_parent'
si le parent de ce scrollView prendre la totalité de l'écran, sur un 800dip hauteur de l'écran (par exemple)
=> le défilement n'est tout simplement pas nécessaire.
OriginalL'auteur Guian
Essayez de définir layout_height "wrap_content" dans votre FrameLayout
Faire défiler lors de la FrameLayout sera plus élevé que la bordure de l'écran. Ou si vous voulez la hauteur fixe de zone avec défilement, régler la hauteur de 500dp sur le ScrollView. Cela dépend de ce que vous voulez, mais ne jamais régler la hauteur fixe sur un ScrollView enfant. La ScrollView la taille de l'enfant doit toujours être wrap_content.
OriginalL'auteur Yaroslav Mytkalyk
Pour obtenir FrameLayout à l'intérieur de ScrollView, faites ceci:
OriginalL'auteur Sumoanand