LinearLayout pas élargir l'intérieur d'un ScrollView

? Felix @ | Original: StackOverFlow

Je ai un LinearLayout dans une ScrollView qui a android:layout_height="fill_parent", mais il ne se étend pas à la hauteur de la «____» . Ma mise en page ressemble à ceci:

ScrollView

Je peux voir que le level layout layout_width layout_height 1 LinearLayout fill_parent fill_parent 2 LinearLayout fill_parent wrap_content 3 (some irrelevant stuff) 2 ScrollView fill_parent fill_parent <-- this expands full height 3 LinearLayout fill_parent fill_parent <-- this does not (has orientation=vertical) (following stuff probably are irrelevant, but just to be sure:) 4 TextView fill_parent fill_parent 4 LinearLayout fill_parent wrap_content n'a pas élargir la hauteur de la LinearLayout parce que dans Eclipse ScrollView, si je sélectionne le « ____ » ( dans le panneau Contour ), il est mis en évidence avec une bordure rouge qui remplit l'écran vers le bas, mais lorsque je sélectionne Android Layout Editor son point culminant ne se développe pas au bas de l'écran . Comment puis-je obtenir pour le faire ?

L'effet que je essaie d'atteindre est d'avoir un texte et un bouton en dessous ( à l'intérieur du ScrollView dans le niveau 4 il ya juste un bouton ) . Le texte peut être assez grand pour avoir besoin d'une barre de défilement, dans ce cas, je veux que l'utilisateur ait à faire défiler afin de voir le bouton . Au cas où le texte ne est pas assez grand pour une barre de défilement, je veux que le LinearLayout contenant le bouton pour coller au bas de l'écran .

Au début, je pensais que je ne devrais pas poster le XML complet, car ce est généralement un tour - bas pour voir un énorme morceau de code dans une question . Cependant, il semble qu'il pourrait être nécessaire, alors voici le schéma complet .

LinearLayout

Au moment où je ai eu recours à LinearLayout sur la problématique «____», ce qui rend le bouton bâton vers le bas de l'écran ne importe quoi. Mais ce qui fait aussi le texte bâton vers le bas de l'écran, qui ne est pas exactement ce que je étais après .

Mise à jour : zéro que, <?xml version="1.0" encoding="utf-8"?> <LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" xmlns:android="http://schemas.android.com/apk/res/android"> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:id="@+id/video_layout" android:focusable="true" style="@style/VideoLayout"> <FrameLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:foreground="@android:drawable/ic_media_play" android:foregroundGravity="center"> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/video_thumb" android:padding="5dip" android:background="#454545"/> </FrameLayout> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:focusable="true" style="@style/VideoTitle" android:id="@+id/video_title" android:layout_gravity="center" android:layout_weight="1"/> </LinearLayout> <ScrollView android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1"> <!-- this ScrollView expands the full height of the screen. However, the next LinearLayout does not expand the full height of the ScrollView --> <LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_weight="1" android:layout_gravity="fill" android:orientation="vertical" android:id="@+id/info_layout"> <TextView android:layout_width="fill_parent" android:layout_height="fill_parent" android:id="@+id/info_body" style="@style/InfoText"/> <LinearLayout android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="horizontal" style="@android:style/ButtonBar"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:layout_weight="1" android:text="@string/button_readmore" android:id="@+id/btn_read_more"/> </LinearLayout> </LinearLayout> </ScrollView> </LinearLayout> rend le android:layout_gravity="bottom" incapable de bien, faites défiler. D'autres idées?

Top 5 Répondre

1snctln @

Pouvez-vous donner votre mise en page xml ? Cela permettrait aux gens de recréer la question avec un effort minimal .

Vous pourriez avoir à régler

LinearLayout

pour l' élément que vous voulez décompressé

2Felix @

Trouvé la solution moi-même à la fin. Le problème ne était pas avec le «____», mais avec la android:layout_gravity="bottom" ( semble étrange, compte tenu du fait que le ScrollView a été en expansion, tandis que le «____» ne était pas) .

La solution était d'utiliser android:layout_weight="1" sur le LinearLayout .

3Braj @

Je ai utilisé de manière dynamique pour obtenir cela. Je ai un LinearLayout et dans ce ScrollView utilisé comme un enfant . Alors je reprends LinearLayout et ajouter ce que jamais Voir u veulent à ce LinearLayout puis ce LinearLayout ajouter à ScrollView et enfin ajouter cette ScrollView à LinearLayout . Alors u peut se défiler ur ScrollView et rien ne sera laissé au visible.

LinearLayout ( Parent ) - ScrollView ( enfant de LinerLayout ) - LinearLayout ( enfant de ScrollView ) - ajouter ici textView, boutons, etc spinner quel que soit u want . Puis ajouter cette LinearLyout à ScrollView . Bcoz un seul enfant pour ScrollView add applicable et ce dernier ScrollView à LinearLyout.If zone définie est dépassent de la taille d' écran, puis sur u obtiendra un parchemin dans les ScrollView .

4Vishal_Pandey @

Dans mon cas, je ne ai pas donné le

orientation de LinearLayout ( Child ScrollView )

Donc, par défaut il faut horizontale, mais scrols de ScrollView verticalement, donc se il vous plaît vérifier si ' android: orientation = "vertical" ' est fixé à l'enfant de votre ScrollView ( Dans le cas de LinearLayout ) .

Ce était mon cas, il espère que quelqu'un aide

.