Tengo un LinearLayout
innerhalb einer ScrollView
Das hat android:layout_height="fill_parent"
aber sie dehnt sich nicht auf die gesamte Höhe des ScrollView
. Mein Layout sieht ungefähr so aus:
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
Ich kann sehen, dass die LinearLayout
erstreckt sich nicht über die gesamte Höhe des ScrollView
weil in Eclipse in Android Layout Editor
wenn ich die Option ScrollView
(im Gliederungsfenster) wird sie mit einem roten Rahmen hervorgehoben, der den Bildschirm bis zum unteren Rand ausfüllt, aber wenn ich die Option LinearLayout
Die Hervorhebung reicht nicht bis zum unteren Rand des Bildschirms. Wie kann ich es dazu bringen, dies zu tun?
Der Effekt, den ich erreichen möchte, besteht darin, dass ich einen Text und eine Schaltfläche darunter (innerhalb der LinearLayout
in Level 4 gibt es nur einen Knopf). Der Text kann groß genug sein, um eine Bildlaufleiste zu benötigen. In diesem Fall möchte ich, dass der Benutzer nach unten scrollen muss, um die Schaltfläche zu sehen. Falls der Text nicht groß genug für eine Bildlaufleiste ist, möchte ich, dass die LinearLayout
mit der Schaltfläche, die am unteren Rand des Bildschirms haften bleibt.
Zuerst dachte ich, ich solle nicht das komplette XML posten, weil es normalerweise ein Abtörner ist, einen großen Brocken Code in einer Frage zu sehen. Es scheint jedoch notwendig zu sein, also hier ist das vollständige Layout.
<?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>
Im Moment habe ich mich auf android:layout_gravity="bottom"
zur Problematik LinearLayout
Dadurch bleibt die Schaltfläche auf jeden Fall am unteren Rand des Bildschirms. Aber dadurch bleibt auch der Text am unteren Rand des Bildschirms hängen, was nicht genau das ist, was ich wollte.
Aktualisierung: Streichen Sie das, android:layout_gravity="bottom"
macht die ScrollView
nicht in der Lage, na ja, zu blättern. Andere Ideen?