SOUI中通过pos的标志如:[, {, }, ],这4个标志可以相对于前一个及后一个兄弟窗口,但是有时候希望相对于不是前后窗口的兄弟窗口,比如一个通过一个中心窗口同时定义它的上下左右4个窗口,这个时候应该如何处理?
其实SOUI是支持相对于任意一个兄弟窗口的,但是定义方法有点复杂,所以在之前的博客文章中都没有介绍。
定义的方法是这样的:
首先被参考窗口(假定为窗口A)必须要指定窗口的ID属性,有了ID(假定id=100),其它窗口才能引用它(这里指定name属性是不行的,系统只会通过ID去查询这个兄弟窗口)。
然后一个窗口(假定为窗口B)要相对于窗口A布局,只需要在pos中指定为如:pos="sib.left@100:-20,sib.bottom@100:30,@100,@100",坐标定义中的sib.left,sib.bottom用来指定这两个坐标是相对于被引用窗口的left,bottom的值,坐标中的100:20,100:30刚代表相对于ID为100的兄弟窗口的left向左偏移20像素及bottom向下偏移30像素。这里的负数是代表偏移方向,和没有sib.xxx时的负值意义不同。
下面看下demo中的示例XML(demo/uires/xml/page_layout.xml):
alpha test ref text
PS:这个定义方法有点山寨,将就着用吧,关键是能解决问题 :)