我有一个有两个部分的屏幕。我希望顶部的一个是静态的,而下一个的TableLayout是可滚动的。我尝试将ScrollView添加到屏幕的下半部分,但是当使TableLayout可滚动时,顶部会消失。
如何将顶部静态部件与可滚动的下部组合?
<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>
答案 0 :(得分:1)
同时使用fill_parent
和android:weight
可能会非常棘手。有一个关于它的讨论,但我找不到它。
作为你的第二个线性布局(带有按钮和textview的布局)设置为fill_parent
,我希望它能占用根布局中的所有空间,但是通过权重设置,它似乎表现得像一个“反向权重”并让ScrollView
占用所有空间。
最好在顶部给出一个wrap_content的高度,并将fill_parent赋予ScrollView
。如果您愿意,可以设置顶部的高度= wrap_content和weight = 0,底部的高度= 0,权重= 1,这样就可以占用所有空间。
如果您将ScrollView
设置为wrap_content
,则其宽度(或高度)与其内容一样多。是滚动还是只是在屏幕外滚动?
LinearLayout
内的ScrollView
无用,除非您计划添加其他内容。
最后一点:xmlns:android="...."
应仅保留在根元素中。
Android布局框架有时候是一个挑战,我希望这有所帮助。