我正在尝试滚动嵌套在选项卡内的 TableLayout。我可以按预期滚动表格,但问题是表格向上滚动时,它在滚动时显示在选项卡后面。
我只想让布局的表格部分滚动。
最后有一个 RelativeLayout 作为信息的图例(关键指南),我将以表格内的行的形式动态显示。所以它需要位于屏幕的底部,并且不应该像表格本身那样滚动。但在这段代码中,选项卡下方的所有内容都会向上滚动(RelativeLayout 除外)
<LinearLayout xmlns:tools="http://schemas.android.com/tools"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:baselineAligned="false"
android:orientation="vertical">
//Fixed On Screen
<TabHost
android:id="@android:id/tabhost"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<TabWidget
android:id="@android:id/tabs"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
</TabWidget>
//Fixed On Screen
<TableLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:paddingTop="4dp" >
<TableRow
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="fill_horizontal"
android:padding="4dp" >
<TextView
style="@android:style/TextAppearance.Medium"
android:layout_weight="1"
android:text="@string/start"
android:textStyle="bold"
android:typeface="serif" />
<TextView
style="@android:style/TextAppearance.Medium"
android:layout_weight="1"
android:text="@string/end"
android:textStyle="bold"
android:typeface="serif" />
<TextView
style="@android:style/TextAppearance.Medium"
android:layout_weight="1"
android:paddingLeft="5dp"
android:text="@string/effect"
android:textStyle="bold"
android:typeface="serif" />
</TableRow>
</TableLayout>
</LinearLayout>
//Scroll this content inside the Tab ONLY
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_gravity="center_horizontal" >
<ScrollView
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:orientation="vertical" >
<TableLayout
android:id="@+id/Tab1"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:paddingTop="4dp"
android:stretchColumns="*" >
</TableLayout>
<TableLayout
android:id="@+id/Tab2"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:paddingTop="4dp"
android:stretchColumns="*" >
</TableLayout>
</LinearLayout>
</ScrollView>
</FrameLayout>
</TabHost>
//Fixed On Screen at the very bottom so the area between this and Tab is what scrolls
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<TableRow
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true" >
<TextView
android:layout_width="wrap_content"
android:layout_height="30dp"
android:layout_weight="1"
android:background="@color/green"
android:padding="5dp"
android:text="@string/excellent"
android:textColor="#FFFFFF" />
<TextView
android:layout_width="wrap_content"
android:layout_height="30dp"
android:layout_weight="1"
android:background="@color/light_blue"
android:padding="5dp"
android:text="Good"
android:textColor="#FFFFFF" />
<TextView
android:layout_width="wrap_content"
android:layout_height="30dp"
android:layout_weight="1"
android:background="@color/dark_gray"
android:padding="5dp"
android:text="@string/normal"
android:textColor="#FFFFFF" />
<TextView
android:layout_width="wrap_content"
android:layout_height="30dp"
android:layout_weight="1"
android:background="@color/red"
android:padding="5dp"
android:text="Bad"
android:textColor="#FFFFFF" />
</TableRow>
</RelativeLayout>
简而言之,我希望将以下内容固定在屏幕上:
- 选项卡
- 第一个表格布局
- 最后的相对布局
并且只希望中间的 FrameLayout/TableLayout 滚动。此布局将动态填充行。
我有一种感觉,它就像 awrap_content
或may 一样简单fill_parent
。但似乎无法弄清楚这一点。
谢谢!