我在Android中有以下要求:
给定一个水平LinearLayout
,我有五个按钮。所有按钮应具有相同的宽度和高度。每个按钮的高度与其父LinearLayout
相同,它们之间的间距应保持不变。 LinearLayout
的高度不是恒定的,取决于外形尺寸和其他布局尺寸。因此,我无法为每个按钮分配固定的/ height。
虽然我可以通过约束在iOS中轻松实现这一点,但我不确定如何在Android设计时实现这一点。有没有办法实现这一点,还是只能以编程方式实现?
答案 0 :(得分:0)
答案 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中的典型布局似乎没有这种布局约束的概念(方形元素)。
最终决定孩子大小的布局。因此,如果您需要,您必须编写实现此约束的自己的布局。
对于此延伸ViewGroup
和onLayout
强制执行子项或特定子项的宽度等于高度。您甚至可以为此任务创建自己的LayoutParams
。有关一般示例,请参阅ViewGroup
的{{3}}。具体实现在很大程度上取决于您对布局的其他要求。