表格布局继续在固定在底部的其他元素下扩展

时间:2015-01-16 11:50:58

标签: android android-layout android-relativelayout

我在relativelayout中有一个表格布局。 relativelayout包含顶部的表,底部的另一个linearlayout。当我向表中添加更多行时,它会变大,直到占用所有屏幕大小,然后包含表行的滚动视图开始工作! 这是布局代码:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent" >
<TableLayout
    android:id="@+id/TableLayout1"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@color/WHITE" >

    <TableLayout
        android:id="@+id/TableLayout2_general_horizantalscrol"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" >
    </TableLayout>

    <ScrollView
        android:id="@+id/scrollView_report_rows"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:background="@color/WHITE"
        android:overScrollMode="never"
        android:scrollbarStyle="outsideInset" >

        <TableLayout
            android:id="@+id/tablelayout_general_scrollview_row"
            android:layout_width="match_parent"
            android:layout_height="wrap_content" >
        </TableLayout>
    </ScrollView>
</TableLayout>
<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_alignParentLeft="true"
    android:orientation="vertical" >
    <TableLayout
        android:id="@+id/tableLayout_general_Itemname"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal|center" >
    </TableLayout>
    <TableLayout
        android:id="@+id/tableLayout_general_footer"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal|center" >
    </TableLayout>
    <TableLayout
        android:id="@+id/TableLayout_general_total"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal|center" >
    </TableLayout>
    <TableLayout
        android:id="@+id/tableLayout_general_button"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal|center" >
    </TableLayout>
</LinearLayout>

</RelativeLayout>

我希望第一个tablelayout内的scrollview在到达线性布局时开始工作。或者换句话说,我希望第一个tablelayoud不要占用整个屏幕空间,并留下一些用于线性布局。我希望我的应用程序以纵向和横向方向运行,并且在多种屏幕尺寸上运行,所以我不喜欢硬编码高度值。

请帮忙吗?

1 个答案:

答案 0 :(得分:1)

尝试将android:layout_above添加到您的表格布局中。

<TableLayout
            android:id="@+id/TableLayout1"
            android:layout_above="@+id/id_of_bottom_linear_layout"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:background="@color/WHITE" >

不要忘记将相同的ID分配给底部对齐的线性布局。 另外,您的布局似乎使用了太多可能影响性能的表格布局。