RelativeLayout的替代品?

时间:2011-03-04 22:21:37

标签: android

我喜欢使用RelativeLayout作为许多LinearLayouts的替代品的想法,但似乎在几个方面都不尽如人意。

  1. 对于visibility=gone的子视图,它的行为是残暴的。似乎已经消失的视图的自然行为是将它们视为宽度和高度为0,但是它将它们作为锚点移除,并且相对于已消失的视图布置的任何其他视图都放在不可预知的位置。是的,可以使用“layout_alignWithParentIfMissing”解决其中一些问题,但这不是一回事,是吗?
  2. 它不支持我在LinearLayout中发现如此有用的layout_weight选项。
  3. 在野外解决这些或类似问题的RelativeLayout有什么好的替代方案吗?

1 个答案:

答案 0 :(得分:0)

您可以将嵌套布局与相对布局一起使用。

<RelativeLayout>
  <LinearLayout
   android:orientation="horizontal"
   android:layout_alignParentBottom="true">
     <widget>
     <Widget>
  </LinearLayout>
  <TableLayout
   android:layout_alignParentTop="true">
    <TableRow>
     <Widget>
     <Widget>
    </TableRow>
       <Widget> // By itself in the middle of a table layout
  </TableLayout>
</RelativeLayout>

只是一个非常简单的例子。任何容器类型都可以嵌套在RelativeLayout中,但ScrollView只能有1个直接子项。