2012-12-20 43 views
0

顶部我有如下定义:TableLayout出现在另一个TableLayout

<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的下方?

+0

我会使用一个垂直的'LinearLayout'。你想如何让他们准确?半和半?一个比另一个大?滚动?那么'RelativeLayout'的父亲是什么? – Eric

+0

嗨,Eric,父母是线性布局。屏幕被垂直分成两半,这种相对布局填充左侧50%的屏幕。我希望第二个表出现在第一个表的下方,因为第一个表中的项目数量是可变的。 – Sam

回答

1

只需将您的布局转换为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> 

但是,请注意,如果元素数太多,它们会从底部的屏幕流出。 (你可能想把这个LinearLayout包装在一个ScrollView。)

+0

谢谢埃里克!感谢你的帮助。 – Sam