我很好奇如果我想让布局占据屏幕右侧,无论屏幕大小如何,我需要做什么。
我是否必须在左侧放置一些权重为 1 的空元素?或者是否可以只指定布局与其父级的右侧对齐并占据一些百分比?如果是这样……怎么办?理想情况下,父级是RelativeLayout,但我会使用任何可行的解决方案,因为目前我尝试过的一切都会导致完全错误的结果。
据我所知,唯一的解决方案是加权LinearLayout
. 视图的权重除以布局的 weightSum 表示屏幕上可用空间的百分比。
你可以让它有两个子视图,每个宽度设置为 0dp,权重设置为 1。
加权布局分两个阶段工作:第一阶段测量layout_width
每个视图的。第二阶段分配关于layout_weight
/weightSum
关系的任何剩余空间(总布局宽度 - 每个视图宽度的累积总和)。
要使元素与任何一侧对齐,您应该设置其父元素的重力(可能是包含该元素的布局)。当然,在您的情况下,将线性布局的“重力”属性设置为right。您可能还需要将布局的“方向”更改为水平
为了让它只占屏幕的一半,设置父布局的“重量总和”和子布局的“布局重量”。孩子的权重之和应该等于父母的权重之和。