Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/192.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 等宽等高布局约束_Android_Layout - Fatal编程技术网

Android 等宽等高布局约束

Android 等宽等高布局约束,android,layout,Android,Layout,我在安卓系统中有以下要求: 给定一个水平线性布局,其中有五个按钮。所有按钮的宽度和高度应相等。每个按钮的高度与其父按钮的高度相同,并且它们之间的间距应保持不变。LinearLayout的高度不是恒定的,取决于形状系数和其他布局大小。因此,我不能为每个按钮指定固定高度 虽然我可以很容易地在iOS中借助约束实现这一点,但我不确定在设计时如何在Android中实现这一点。是否有某种方法可以实现这一点,或者仅通过编程实现 每个按钮的高度与其父线性布局相同 将高度设置为match\u parent 对于宽

我在安卓系统中有以下要求:

给定一个水平
线性布局
,其中有五个按钮。所有按钮的宽度和高度应相等。每个按钮的高度与其父按钮的高度相同,并且它们之间的间距应保持不变。
LinearLayout
的高度不是恒定的,取决于形状系数和其他布局大小。因此,我不能为每个按钮指定固定高度

虽然我可以很容易地在iOS中借助约束实现这一点,但我不确定在设计时如何在Android中实现这一点。是否有某种方法可以实现这一点,或者仅通过编程实现

每个按钮的高度与其父线性布局相同

将高度设置为
match\u parent


对于宽度,您必须以编程方式计算屏幕大小,并相应地设置宽度。请参阅。

试试这个。由于您有一个带有5个按钮的水平线性布局,为了使所有按钮的间距相等,必须首先将空间分配给总可用空间的每个按钮,如下所示

<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


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

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

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

对于此扩展
ViewGroup
和在
onLayout
中,强制子级或特定子级的宽度等于高度。您甚至可以为此任务发明自己的
LayoutParams
。有关一般示例,请参见查看组的。确切的实现在很大程度上取决于您对布局的其他要求。

我的意思是按钮之间的间距(间隙)要相同,而不仅仅是宽度。因此,我们的想法是有一个恒定的间距,然后剩余的宽度应该平均分配给5个按钮。