Saya memiliki bagian LinearLayout
dalam ScrollView
yang memiliki android:layout_height="fill_parent"
, tetapi tidak memperluas ke ketinggian penuh ScrollView
. Layout saya terlihat seperti:
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
Saya dapat melihat bahwa LinearLayout
tidak memperluas ketinggian penuh ScrollView
karena di Eclipse Android Layout Editor
, jika saya memilih ScrollView
(di panel Garis Besar) itu disorot dengan batas merah yang mengisi layar ke bawah tetapi ketika saya memilih LinearLayout
sorotnya tidak meluas ke bagian bawah layar. Bagaimana saya bisa melakukannya?
Efek yang saya coba capai adalah memiliki beberapa teks dan tombol di bawahnya (di LinearLayout
dalam level 4 hanya ada tombol). Teks bisa cukup besar untuk memerlukan bilah gulir, dalam hal ini saya ingin pengguna harus gulir ke bawah untuk melihat tombol. Jika teks tidak cukup besar untuk bilah gulir, saya ingin tombol yang LinearLayout
berisi menempel ke bagian bawah layar.
Pada awalnya saya pikir saya tidak boleh memposting XML lengkap karena biasanya penolakan untuk melihat sejumlah besar kode dalam sebuah pertanyaan. Namun, sepertinya itu perlu, jadi inilah tata letak lengkapnya.
<?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>
Saat ini saya telah beralih ke android:layout_gravity="bottom"
masalah LinearLayout
, yang membuat tombol menempel pada bagian bawah layar tidak peduli apa. Tapi itu juga membuat teks menempel di bagian bawah layar, yang tidak persis seperti apa yang saya cari.
Pembaruan: goreskan itu, android:layout_gravity="bottom"
buat yang ScrollView
tidak bisa, yah, gulir. Ide lain?
android:weight
.