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