Android 如何使布局占据屏幕的1/2?

Android 如何使布局占据屏幕的1/2?,android,layout,Android,Layout,我很好奇,如果我想让布局占据屏幕的右侧,不管屏幕大小如何,我需要做什么 我必须把一些重量为1的空元素放在左边吗?或者可以只指定布局与其父布局的右侧对齐并占据一定百分比?如果是的话。。。怎样?理想情况下,父母是一个相对的年轻人,但我会使用任何可行的解决方案,因为目前我所尝试的一切都会导致完全错误的结果 据我所知,唯一的解决方案是使用加权的线性布局。视图的权重除以布局权重和表示屏幕上可用空间的百分比 可以使其具有两个子视图,每个子视图的宽度设置为0dp,权重设置为1 加权布局分为两个阶段:第一阶段测

我很好奇,如果我想让布局占据屏幕的右侧,不管屏幕大小如何,我需要做什么


我必须把一些重量为1的空元素放在左边吗?或者可以只指定布局与其父布局的右侧对齐并占据一定百分比?如果是的话。。。怎样?理想情况下,父母是一个相对的年轻人,但我会使用任何可行的解决方案,因为目前我所尝试的一切都会导致完全错误的结果

据我所知,唯一的解决方案是使用加权的
线性布局
。视图的权重除以布局权重和表示屏幕上可用空间的百分比

可以使其具有两个子视图,每个子视图的宽度设置为0dp,权重设置为1


加权布局分为两个阶段:第一阶段测量每个视图的
layout\u宽度
。第二阶段根据
layout\u weight
/
weightSum
关系分配任何剩余空间(总布局宽度-每个视图宽度的累计和)。

据我所知,唯一的解决方案是使用加权
线性布局。视图的权重除以布局权重和表示屏幕上可用空间的百分比

可以使其具有两个子视图,每个子视图的宽度设置为0dp,权重设置为1


加权布局分为两个阶段:第一阶段测量每个视图的
layout\u宽度
。第二阶段根据
layout\u weight
/
weightSum
关系分配任何剩余空间(总布局宽度-每个视图宽度的累计总和)。

若要使元素与任意边对齐,应设置其父元素(可能是包含该元素的布局)的重力。当然,在您的情况下,请将线性布局的“重力”属性设置为right。您可能还需要将布局的“方向”更改为水平方向


要使其仅占屏幕的一半,请设置父布局的“权重和”,以及子布局的“布局权重”。子元素的权重之和应等于父元素的权重之和。

要使元素与任意边对齐,应设置其父元素(可能是包含该元素的布局)的重力。当然,在您的情况下,请将线性布局的“重力”属性设置为right。您可能还需要将布局的“方向”更改为水平方向


要使其仅占屏幕的一半,请设置父布局的“权重和”,以及子布局的“布局权重”。子项的权重之和应该等于父项的权重之和。

等等,你是说我应该将布局宽度设置为0dp,它仍然会占用屏幕上的空间??但除此之外,如果父视图的权重和为2,我会在左侧放置一个空布局,在右侧放置我的预期布局,并给每个布局的权重为1,对吗?@Dr.Dredel:确实,因为权重会影响视图的宽度。事实上,如果你将宽度设置为0dp以外的值,你不会得到一半的屏幕空间,只有一半的可用空间(屏幕空间减去所说的宽度)。好吧,我完全糊涂了。假设屏幕总共有100个,我将左侧设置为0dp,将其权重设置为1,那么(逻辑上)可用空间*是否仍然是100dp,因为左侧实际上没有使用任何空间。。。我想我遗漏了一些非常基本的东西。@Dredel博士:你说的听起来不错。加权布局分两个阶段工作。第一阶段测量每个视图的布局宽度。第二阶段根据
layout\u weight
/
weightSum
关系分配任何剩余空间(总布局宽度-每个视图宽度的累计总和)。我看到了。。。因此,一旦它发现两个视图都不占用任何空间,它就会为每个视图分配1/2的可用空间。。。非常有趣。等等,你是说我应该将布局宽度设置为0dp,它仍然会占用屏幕上的空间??但除此之外,如果父视图的权重和为2,我会在左侧放置一个空布局,在右侧放置我的预期布局,并给每个布局的权重为1,对吗?@Dr.Dredel:确实,因为权重会影响视图的宽度。事实上,如果你将宽度设置为0dp以外的值,你不会得到一半的屏幕空间,只有一半的可用空间(屏幕空间减去所说的宽度)。好吧,我完全糊涂了。假设屏幕总共有100个,我将左侧设置为0dp,将其权重设置为1,那么(逻辑上)可用空间*是否仍然是100dp,因为左侧实际上没有使用任何空间。。。我想我遗漏了一些非常基本的东西。@Dredel博士:你说的听起来不错。加权布局分两个阶段工作。第一阶段测量每个视图的布局宽度。第二阶段根据
layout\u weight
/
weightSum
关系分配任何剩余空间(总布局宽度-每个视图宽度的累计总和)。我看到了。。。因此,一旦它发现两个视图都不占用任何空间,它就会为每个视图分配1/2的可用空间。。。非常有趣。