awtk/docs/self_layouter_default.md

123 lines
2.6 KiB
Markdown
Raw Normal View History

2021-07-12 09:57:33 +08:00
# 缺省的控件自身布局器 (self\_layouter\_default) 介绍
2018-12-20 11:01:37 +08:00
## 概述
2021-07-12 09:57:33 +08:00
缺省布局中有 5 个参数:
2018-12-20 11:01:37 +08:00
2021-07-12 09:57:33 +08:00
* x x 坐标
* y y 坐标
2018-12-20 11:01:37 +08:00
* w 控件宽度
* h 控件高度
2021-07-12 09:57:33 +08:00
* floating 是否为浮动布局。 如果设置为 true该控件不受父控件的 children\_layouter 的影响。
2018-12-20 11:01:37 +08:00
## 二、像素方式
2021-07-12 09:57:33 +08:00
直接指定控件的 x/y/w/h 的像素值,这是缺省的方式,也是最缺乏灵活性的方式。
2018-12-20 11:01:37 +08:00
示例:
2021-07-12 09:57:33 +08:00
* 在 XML 界面描述文件中:
2018-12-20 11:01:37 +08:00
```
<button x="10" y="5" w="80" h="30" text="ok"/>
```
* 在代码中:
```
widget_move_resize(btn, 10, 5, 80, 30);
```
## 三、百分比
2021-07-12 09:57:33 +08:00
* x/w 的值如果包含"%",则自动换算成相对其父控件宽度的百分比。
* y/h 的值如果包含"%",则自动换算成相对其父控件高度的百分比。
2018-12-20 11:01:37 +08:00
示例:
2021-07-12 09:57:33 +08:00
* 在 XML 界面描述文件中:
2018-12-20 11:01:37 +08:00
```
<button x="10%" y="10" w="50%" h="30" text="ok"/>
```
2021-07-12 09:57:33 +08:00
* 在代码中(看起来要麻烦一点):
2018-12-20 11:01:37 +08:00
```
widget_set_self_layout_params(btn, "10%", "10", "50%", "30");
widget_layout(btn);
```
> 在代码中设置控件的布局参数,方法类似,后面就不再举例子了。
## 四、水平居中
2021-07-12 09:57:33 +08:00
让控件在水平方向上居中,只需要将 x 的值设置成"c"或者"center"即可。
2018-12-20 11:01:37 +08:00
示例:
```
<button x="center" y="10" w="50%" h="30" text="ok"/>
```
## 五、垂直居中
2021-07-12 09:57:33 +08:00
让控件在垂直方向上居中,只需要将 y 的值设置成"m"或者"middle"即可。
2018-12-20 11:01:37 +08:00
示例:
```
<button x="center" y="middle" w="50%" h="30" text="ok"/>
```
## 六、位于右边
2021-07-12 09:57:33 +08:00
让控件位于父控件的右侧,只需要将 x 的值设置成"r"或者"right"即可。
2018-12-20 11:01:37 +08:00
示例:
```
<button x="right" y="10" w="50%" h="30" text="ok"/>
```
2021-07-12 09:57:33 +08:00
如果还想离右侧有一定距离,可以在 right 后指定距离的像素。
2018-12-20 11:01:37 +08:00
示例:
```
<button x="right:20" y="10" w="50%" h="30" text="ok"/>
```
## 七、位于底部
2021-07-12 09:57:33 +08:00
让控件位于父控件的底部,只需要将 y 的值设置成"b"或者"bottom"即可。
2018-12-20 11:01:37 +08:00
示例:
```
<button x="10" y="bottom" w="50%" h="30" text="ok"/>
```
2021-07-12 09:57:33 +08:00
如果还想离底部有一定距离,可以在 bottom 后指定距离的像素。
2018-12-20 11:01:37 +08:00
示例:
```
<button x="10" y="bottom:20" w="50%" h="30" text="ok"/>
```
## 八、宽度和高度为负数
无论是像素模式还是百分比模式,宽度和高度均可为负数。
* 宽度为负数。其值为父控件的宽度+该负值。
* 高度为负数。其值为父控件的高度+该负值。
## 九、浮动布局
2021-07-12 09:57:33 +08:00
如果 floating 设置为 true该控件不受父控件的 children\_layouter 的影响。
2018-12-20 11:01:37 +08:00
示例:
```
<button x="10" y="20" w="50" h="30" floating="true" "text="ok"/>
```