J'ai un LinearLayout
à l'intérieur d'un ScrollView
qui a android:layout_height="fill_parent"
, mais il ne s'étend pas sur toute la hauteur de l' ScrollView
. Ma mise en page ressemble à quelque chose comme:
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
Je peux voir que l' LinearLayout
ne s'étend pas sur toute la hauteur de l' ScrollView
parce que dans Eclipse en Android Layout Editor
, si je sélectionne l' ScrollView
(dans le panneau plan), il est mis en évidence avec une bordure rouge qui remplit l'écran vers le bas, mais lorsque je sélectionne l' LinearLayout
son point culminant ne pas s'étendre vers le bas de l'écran. Comment puis-je l'obtenir?
L'effet, je suis en train de réaliser est d'avoir un peu de texte et un bouton en dessous (à l'intérieur de l' LinearLayout
au niveau 4 il y a juste un bouton). Le texte peut être assez grand pour le besoin d'une barre de défilement, dans ce cas, je veux à l'utilisateur d'avoir à faire défiler vers le bas pour voir le bouton. Dans le cas où le texte n'est pas assez grand pour une barre de défilement, je veux de l' LinearLayout
contenant le bouton pour coller au bas de l'écran.
Au début, je pensais que je ne devrais pas publier XML, car il est généralement un tour vers le bas pour voir un énorme morceau de code en question. Cependant, il semble qu'il pourrait être nécessaire, alors, voici la mise en page complète.
<?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>
Pour le moment j'ai eu recours à l' android:layout_gravity="bottom"
sur la problématique LinearLayout
, ce qui rend le bouton de coller au fond de l'écran, peu importe quoi. Mais qui fait aussi le texte bâton vers le bas de l'écran, ce qui n'est pas exactement ce que je recherchais.
Mise à jour: scratch, android:layout_gravity="bottom"
fait l' ScrollView
l'impossibilité de le faire bien, faire défiler. D'autres idées?