Ho un LinearLayout
interno ScrollView
che ha android:layout_height="fill_parent"
, ma non si espande fino all'altezza massima di ScrollView
. Il mio layout è simile al seguente:
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
Vedo che il LinearLayout
non espande l'intera altezza del ScrollView
perché in Eclipse in Android Layout Editor
, se seleziono ScrollView
(nel pannello Contorno) viene evidenziato con un bordo rosso che riempie lo schermo fino in fondo ma quando seleziono il LinearLayout
punto saliente non si espande nella parte inferiore dello schermo. Come posso farlo farlo?
L'effetto che sto cercando di ottenere è avere un po 'di testo e un pulsante sotto di esso (all'interno del LinearLayout
livello 4 c'è solo un pulsante). Il testo può essere abbastanza grande da richiedere una barra di scorrimento, nel qual caso voglio che l'utente debba scorrere verso il basso per vedere il pulsante. Nel caso in cui il testo non sia abbastanza grande per una barra di scorrimento, voglio LinearLayout
che il pulsante contenente si attacchi alla parte inferiore dello schermo.
All'inizio ho pensato che non avrei dovuto pubblicare l'intero XML perché di solito è una svolta per vedere un grosso pezzo di codice in una domanda. Tuttavia, sembra che potrebbe essere necessario, quindi ecco il layout completo.
<?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>
Al momento ho fatto ricorso al android:layout_gravity="bottom"
problema LinearLayout
, che fa in modo che il pulsante si attacchi alla parte inferiore dello schermo, qualunque cosa accada. Ma ciò rende anche il testo aderire alla parte inferiore dello schermo, che non è esattamente quello che stavo cercando.
Aggiornamento: grattalo, android:layout_gravity="bottom"
rende l' ScrollView
impossibile, beh, scorrere. Altre idee?
android:weight
.