0

我有以下定义:

<RelativeLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/leftContainer"
    android:layout_weight="0.8">
    <TableLayout
        android:id="@+id/drinksTable"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:shrinkColumns="*"
        android:stretchColumns="*"
        android:padding="0dp" />
    <TableLayout
        android:id="@+id/itemsTable"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:shrinkColumns="*"
        android:stretchColumns="*"
        android:padding="0dp"
        android:layout_alignParentBottom="true" />
</RelativeLayout>

两种表格布局都是以编程方式构建的。

我希望第二个表直接出现在第一个表的下方,但是我能做的最好的就是让它位于我不喜欢的布局的底部(使用 alignParentBottom)。

我怎样才能让itemsTable直接出现在下面drinksTable

4

1 回答 1

1

只需将您的布局转换为 a LinearLayout,确保添加android:orientation="vertical"; 这将使每个元素垂直堆叠。

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/leftContainer"
    android:layout_weight="0.8"
    android:orientation="vertical">
    <TableLayout
        android:id="@+id/drinksTable"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:shrinkColumns="*"
        android:stretchColumns="*"
        android:padding="0dp" />
    <TableLayout
        android:id="@+id/itemsTable"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:shrinkColumns="*"
        android:stretchColumns="*"
        android:padding="0dp"
        android:layout_alignParentBottom="true" />
</LinearLayout>

但是请注意,如果元素数量过多,它们会从底部的屏幕流出。(您可能希望将其包装LinearLayoutScrollView.)

于 2012-12-20T03:16:27.683 回答