等宽和高度布局约束

时间:2015-07-17 15:02:15

标签: android layout

我在Android中有以下要求:

给定一个水平LinearLayout,我有五个按钮。所有按钮应具有相同的宽度和高度。每个按钮的高度与其父LinearLayout相同,它们之间的间距应保持不变。 LinearLayout的高度不是恒定的,取决于外形尺寸和其他布局尺寸。因此,我无法为每个按钮分配固定的/ height。

虽然我可以通过约束在iOS中轻松实现这一点,但我不确定如何在Android设计时实现这一点。有没有办法实现这一点,还是只能以编程方式实现?

3 个答案:

答案 0 :(得分:0)

  

每个按钮的高度与其父级LinearLayout

相同

将高度设为match_parent

对于您的宽度,您必须以编程方式计算屏幕尺寸并相应地设置宽度。请参阅this question

答案 1 :(得分:0)

试试这个。由于您有一个带有5个按钮的水平LinearLayout,对于所有按钮的相等间距,您必须首先将空间分配给可用总空间中的每个按钮,如下所示。

<LinearLayout
            android:weightSum="5"
            android:orientation="horizontal"
            android:layout_width="match_parent"
            android:layout_height="wrap_content">
             <Button
                    android:layout_weight="1"
                    android:layout_width="0dp"
                    android:layout_height="allocate it programatically"
                    />

上面显示的这个按钮必须是你拥有的所有5个按钮。这个想法将权重和为5分配给LinearLayout,然后将其除以1为每个按钮。请注意,此处按钮的宽度应为0dp。

然后根据您的要求动态更改按钮高度和宽度

答案 2 :(得分:0)

不幸的是,Android中的典型布局似乎没有这种布局约束的概念(方形元素)。

最终决定孩子大小的布局。因此,如果您需要,您必须编写实现此约束的自己的布局。

对于此延伸ViewGrouponLayout强制执行子项或特定子项的宽度等于高度。您甚至可以为此任务创建自己的LayoutParams。有关一般示例,请参阅ViewGroup的{​​{3}}。具体实现在很大程度上取决于您对布局的其他要求。