ScrollView nur auf einen Teil des Bildschirms in Android
Ich habe einen Schirm mit zwei teilen. Ich möchte die oben statisch zu sein und der untere mit einem TableLayout zu sein Scrollbar. Ich habe versucht, das hinzufügen einer ScrollView an den unteren Teil des Bildschirms, aber wenn dabei das TableLayout scrollbaren der Obere Teil verschwindet.
Wie kann ich die kombinieren Sie das top statischen Teil mit einer scrollbaren unteren Teil?
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:id="@+id/LinearLayout01"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_weight="9"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/title_shape">
<Button
android:id="@+id/btnBack"
android:text="@string/titleCreateTest"
style="@style/Bar_buttonBack">
</Button>
<TextView android:layout_weight="6"
android:id="@+id/titleFlashcard"
android:text="@string/titleStatistic"
style="@style/TitleStyle">
</TextView>
</LinearLayout>
<ScrollView
android:id="@+id/ScrollView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:id="@+id/LinearLayout2"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TableLayout
android:id="@+id/table_layout"
style="@style/TableLayoutStyle">
<TableRow
android:id="@+id/table_row1">
<TextView
android:id="@+id/tv1"
android:text="@string/tvRecord"
style="@style/TableRowStyle"/>
<TextView
android:id="@+id/tv1v"
style="@style/TableRowStyleColumn2"/>
</TableRow>
<View
style="@style/TableRowSeparator"/>
<TableRow
android:id="@+id/table_row2">
<TextView
android:id="@+id/tv2"
android:text="@string/tvMedium"
style="@style/TableRowStyle"/>
<TextView
android:id="@+id/tv2v"
style="@style/TableRowStyleColumn2"/>
</TableRow>
<View
style="@style/TableRowSeparator"/>
<TableRow
android:id="@+id/table_row3">
<TextView
android:id="@+id/tv3"
android:text="@string/tvWorst"
style="@style/TableRowStyle"/>
<TextView
android:id="@+id/tv3v"
style="@style/TableRowStyleColumn2"/>
</TableRow>
</TableLayout>
<TableLayout
android:id="@+id/table_layout2"
style="@style/TableLayoutStyle">
<TableRow
android:id="@+id/table_row4">
<TextView
android:id="@+id/tvDate"
style="@style/TableRowStyle"/>
<TextView
android:id="@+id/tvResult"
style="@style/TableRowStyleColumn2"/>
</TableRow>
<View
android:id="@+id/rowseparator"
style="@style/TableRowSeparator"/>
</TableLayout>
</LinearLayout>
</ScrollView>
</LinearLayout>
- Es sollte einfach sein. Posten Sie Ihre layout-XML.
- Ich habe versucht meine xml-layout, aber es nicht in die ganze Sache. Sollte ich die anderen, dass die code Klammern {} für xml?
- Sie müssen wählen Sie alle Zeilen xml-code, und drücken Sie dann die
{}
- Taste, es fügt 4 Leerzeichen am Anfang jeder Zeile (das ist, was macht die Linien oder Blöcke von code formatiert). - Ok! Jetzt ist er da!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Mit beiden
fill_parent
undandroid:weight
kann schwierig sein. Es gab eine Diskussion darüber, aber ich kann es nicht finden.Als Ihre zweite lineare layout (mit button und textview) festgelegt
fill_parent
würde ich erwarten, dass es zu Essen, bis alle den Raum in die root-layout, aber mit einem Gewicht scheint es sich zu Verhalten wie eine "inverse Gewicht" und lässt dieScrollView
nehmen alle Platz.Wäre es besser, den oberen Teil einer wrap_content in die Höhe und ein fill_parent der
ScrollView
. Wenn Sie möchten, könnten Sie mit der set-top Artikel height=wrap_content und Gewicht=0, und der untere Teil ist die Höhe=0 und das Gewicht=1, so dass es nimmt alle den Raum verlassen.Wenn Sie ein
ScrollView
zuwrap_content
es wird breit (oder hoch) so viel wie sein Inhalt. Ist es scrollen oder einfach nur landen außerhalb des Bildschirms?Den
LinearLayout
innerhalb derScrollView
ist nutzlos, es sei denn, man plant noch etwas anderes.Eine Letzte Anmerkung: die
xmlns:android="...."
bleiben sollte, die nur im root-element.Android-layout-framework ist bekannt als eine Herausforderung manchmal, ich hoffe, das half.
0dp
Wert fürandroid:layout_width
/android:layout_height
wenn wir auch mitandroid:layout_weight
weilandroid:layout_weight
erfordert bereits ein Breite-Höhe-Berechnung, um zu bestimmen, die übrigen Raum; und der einzige Grund, der erwähnt wird, ist zur Verbesserung der layout-Effizienz.