soui-布局属性
SOUI 布局全部采用相对坐标,由 pos,offset(pos2type), size, width,height 这几个个窗口属性配合指定
size, width, height 属性
size, width, height 比较简单,是用来指定窗口的大小的,只有在 pos 属性指定的值个数不为 4 时生效。
size 是 2014 年底增加的布局属性,size=”width,height”。
width, height 可以有 3 种值:full,-1, 非负整数。
为 full 时,代表高度或者宽度和父窗口的客户区大小相等。
-1 代表根据窗口内容自动计算窗口大小。
非负整数直接指定窗口大小。
在图片控件中,控件是指定的皮肤默认大小。
在文本控件中,还可以指定一个 maxWidth 属性,控件是文本内容的大小,但宽度不超过 maxWidth。
pos 属性
pos 属性可以指定 4 个值,也可以指定 2 个值。指定 4 个值时,分别代表控件的 left,top,right,bottom,
指定两个值时代表控件的 x,y,具体位置还依赖于另外 3 个参数。
自动计算就设置为-1
指定 4 个值时,pos 目前支持 7 种标志:|,%,[,],{,},@
“|” 代表参考父窗口的中心;如 |-10 代表在父窗口的中心向左 / 上偏移 10 象素。
“%” 代表在父窗口的百分比,可以是小数,负数。如:%40 代表在父窗口的 40% 位置,%-40 则等价于 (1-40%)。
“[” 相对于前一兄弟窗口。用于 X 时,参考前一兄弟窗口的 right,用于 Y 时参考前一兄弟窗口的 bottom
“]” 相对于后一兄弟窗口。用于 X 时,参考后一兄弟的 left, 用于 Y 时参考后一兄弟的 top
“{” 相对于前一兄弟窗口。用于 X 时,参考前一兄弟窗口的 left,用于 Y 时参考前一兄弟窗口的 top
“}” 相对于后一兄弟窗口。用于 X 时,参考后一兄弟的 right, 用于 Y 时参考后一兄弟的 bottom
“@” 标志用来指定窗口的大小,只能出现在 pos 属性的第 3,4 个值中,用来标识窗口的宽度。当后面的值为负时,代表自动计算窗口的宽度或者高度(2015.3.3 新增加解释)。
注:“|“, “[“ ,”]”, “{“, “}” 中指定的值都可以为正或者负,正时向右或者下偏移,负则向左或者上偏移。
当没有上述标志时,负号代表参考父窗口的右边或者下边缩进绝对值位置。如:pos=”0,0,-0,-0” 代表占满父窗口。而 pos=”10,10,-10,-10” 则代表在父窗口的基础上向内全部缩进 10 点。
@: 指定窗口的 size。只能用于 x2,y2,用于 x2 时,指定窗口的 width,用于 y2 时指定窗口的 height。注:只能为正值,负号会自动忽略。
其中 “{” 和“}”是 SOUI 在 DUIENGINE 的基础上新增加的布局标志(SOUI 是在 DUIENGINE 的基础上全面重构而来)。
注意!!! 由于系统运行向前及向后引用,理论上有可能出来循环引用,导致界面布局失败,因此在使用 “[“,”{“,“}” 和 “]” 这几个标志时需要特别注意。
当 pos 只指定了 x1,y1 时,通常需要和 offset(或者 pos2type),size(或者 width,height) 配合使用。
offset 属性包含两个值,用来代表窗口在通过其它布局属性完成后的偏移量:如 offset=”-1,-1”,该 offset 表明窗口向左方及上方各平衡一个窗口大小的单位。
和pos中一般使用象素为单位不同,offset是以控件最后的大小为单位进行平移。