Android 填充剩余空间:线性布局和重量还是相对长度?
如果我有两个视图,我希望一个占据必要的空间,另一个占据剩余的空间,我应该如何进行 假设我要垂直放置视图。下面的视图应该占据必要的空间(包裹内容),上面的视图应该占据容器布局的剩余空间 我使用了以下两种解决方案(简化代码): 1)Android 填充剩余空间:线性布局和重量还是相对长度?,android,layout,Android,Layout,如果我有两个视图,我希望一个占据必要的空间,另一个占据剩余的空间,我应该如何进行 假设我要垂直放置视图。下面的视图应该占据必要的空间(包裹内容),上面的视图应该占据容器布局的剩余空间 我使用了以下两种解决方案(简化代码): 1) 线性布局带重量 <LinearLayout ...> <View height="0dp" weight="1" .../> <View height="wrap_content" .../> </LinearLayou
线性布局
带重量
<LinearLayout ...>
<View height="0dp" weight="1" .../>
<View height="wrap_content" .../>
</LinearLayout>
LinearLayout
方法始终有效,RelativeLayout
通常按预期工作,但它显然是不明确的,因为没有任何东西表明@+id/big
视图应该比下面的视图大
我认为第一种方法更好,因为它并不含糊。然而,我看到了第二种方法的许多例子和答案
对于这些情况,您使用什么解决方案。是否有最佳实践
谢谢
编辑
根据孩子的回答,现在我要这样做(注意匹配\u家长
):
我会使用相对布局:
<View height="match_parent" id="@+id/big" android:layout_above="@+id/view2" alignParentTop ... >
<View height="wrap_content" id="@+id/view2" alignParentBottom ...>
这样,第一个视图将填充屏幕高度,直到它到达第二个视图。谢谢,这是有意义的,尽管我不知道为什么android将“填充父视图”更改为“匹配父视图”。我的意思是,您的解决方案将非常清楚地使用旧的尺寸限定符:“尽可能多地填充家长”。新的大小似乎是“匹配父级大小”。“填充父级”和“匹配父级”是相同的。看看这些链接:顺便说一下,我想我只需要使用“上面”或“下面”;两者都用是多余的,不是吗?也许我应该使用下面来引用之前声明的视图,尽管我不确定是否可以使用前向引用(引用xml中随后声明的视图)。是的,我很抱歉不需要使用下面的=“@+id/big”,这是多余的,我忘了删除它。但是如何为firstview设置最小高度。我尝试了minHeight属性,但不起作用。第二个视图完全填满了屏幕(如果其高度太大)。
<RelativeLayout ...>
<View height="match_parent" id="@+id/big" alignParentTop .../>
<View height="wrap_content" below="@+id/big" alignParentBottom .../>
</RelativeLayout>
<View height="match_parent" id="@+id/big" android:layout_above="@+id/view2" alignParentTop ... >
<View height="wrap_content" id="@+id/view2" alignParentBottom ...>