填充剩余空间:LinearLayout和weight或RelativeLayout?

时间:2015-11-17 22:25:24

标签: android layout

如果我有2个视图,并且我希望一个人占用必要的空间而另一个人占用剩余的空间,我该怎么办呢?

我们假设我想垂直放置视图。下面的视图应该占用必要的空间(wrap_content),上面的视图应该占用容器布局的剩余空间。

我使用过这两种解决方案(简化代码):

1)LinearLayout weight

<LinearLayout ...>
  <View height="0dp" weight="1" .../>
  <View height="wrap_content" .../>
</LinearLayout>

2)RelativeLayout对齐

<RelativeLayout ...>
  <View height="wrap_content"    id="@+id/big" alignParentTop .../>
  <View height="wrap_content" below="@+id/big" alignParentBottom .../>
</RelativeLayout>

LinearLayout方法始终有效,RelativeLayout通常按预期工作,但显然不明确,因为没有任何内容表明@+id/big视图应该大于下面的视图。< / p>

我认为第一种方法更好,因为不含糊。但是,我已经看到了第二种方法的许多例子和答案。

您对这些案例使用什么解决方案?有最好的做法吗?

谢谢!

修改

接受Touf的回答,现在我会这样做(请注意match_parent):

<RelativeLayout ...>
  <View height="match_parent"    id="@+id/big" alignParentTop .../>
  <View height="wrap_content" below="@+id/big" alignParentBottom .../>
</RelativeLayout>

1 个答案:

答案 0 :(得分:4)

我会使用相对布局:

<View height="match_parent"    id="@+id/big" android:layout_above="@+id/view2" alignParentTop ... >

<View height="wrap_content" id="@+id/view2" alignParentBottom ...>

这样第一个视图将填满屏幕高度,直到它到达第二个视图。