SOUI官方论坛

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 140|回复: 5

3+1上下结构布局,listctrl占满下部剩余高度

[复制链接]

180

主题

421

帖子

3681

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3681
发表于 2019-8-9 10:43:24 | 显示全部楼层 |阅读模式

大布局为上下布局,上下平分,见下图的两个框,weight均为1。

上面布局中又分为三个水平方向的3块,详见代码部分,各宽度受wegiht控制

下面布局中有一个listctrl,想实现除上方文字外,占满竖直空间
  1. <?xml version="1.0"?>
  2. <include width="1204" height="508">
  3.         <window colorBkgnd="#E0EEEE" pos="0,0,-0,-0" font="adding:3" <font color="#ff0000">layout="vbox"</font>>
  4.                 <window size="-2,0" layout="hbox" <font color="#ff0000">weight="1"</font>>
  5.                         <window size="0,-2" layout="vbox" weight="2" margin="5">

  6.                         </window>
  7.                         <window size="0,-2" layout="vbox" weight="4">

  8.                         </window>
  9.                         <window size="0,-2" layout="vbox" weight="2">
  10.                                 <text pos="550,45" font="adding:5">帮助说明位置</text>
  11.                         </window>
  12.                 </window>
  13.                 <window size="-2,0" layout="vbox" <font color="#ff0000">weight="1"</font>>
  14.                         <text pos="[0,[10" font="adding:5">我是第三个用户登录</text>
  15.                         <listctrl name="listctrl" size="-2, 0" weight="1" hotTrack="1" itemHeight="20" headerHeight="30" font="underline:1">
  16.                                 <header align="left" itemSwapEnable="1" fixWidth="0" sortHeader="1" />
  17.                         </listctrl>
  18.                 </window>
  19.         </window>
  20. </include>
复制代码


重点说一下下方布局
  1. <window size="-2,0" layout="vbox" <font color="#ff0000">weight="1"</font>>
  2.                         <text pos="[0,[10" font="adding:5">我是第三个用户登录</text>
  3.                         <listctrl name="listctrl"<font color="#ff0000"> size="-2, 0" weight="1"</font> hotTrack="1" itemHeight="20" headerHeight="30" font="underline:1">
  4.                                 <header align="left" itemSwapEnable="1" fixWidth="0" sortHeader="1" />
  5.                         </listctrl>
  6.                 </window>
复制代码
此处为vbox布局,在vbox或hbox下,pos控制点无效,此时设置size=-2,0且weight="1"
开始布局的时候,先按照listctrl的size指定的大小计算布局。计算完成后,如果父窗口在布局方向上还有剩余空间,就按照weight属性值在控件之间分配。

所以如果你想要vbox两个控件高度完全相同,你就可以指定高度为0,并且给相同的weight。所有控件的weight属性默认是0


由于vbox属于线性布局,上面的text(我是第三个用户登录)是要占用空间的,计算完text的空间后,然后再去计算下面listctrl的空间,此时weight=1则listctrl占用剩余的全部高度,若还有其它控件,则类推计算。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

2

主题

132

帖子

419

积分

版主

Rank: 7Rank: 7Rank: 7

积分
419
发表于 2019-8-9 11:15:46 | 显示全部楼层
回复

使用道具 举报

3

主题

44

帖子

442

积分

02:00元婴期

Rank: 3Rank: 3

积分
442
发表于 2019-8-9 15:43:28 | 显示全部楼层
回复

使用道具 举报

1

主题

41

帖子

571

积分

04:00化神期

Rank: 4

积分
571
发表于 2019-8-9 15:56:22 | 显示全部楼层
回复

使用道具 举报

3

主题

20

帖子

113

积分

24:00金丹期

Rank: 2

积分
113
发表于 2019-8-29 16:03:24 | 显示全部楼层
大佬 请教一下,布局里面控件之间的间距怎么设置?

180

主题

421

帖子

3681

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3681
 楼主| 发表于 2019-8-29 16:15:49 | 显示全部楼层
WuFuck 发表于 2019-8-29 16:03
大佬 请教一下,布局里面控件之间的间距怎么设置?

我知道的方法:
1、做一个空白window(group\text\什么的都行),设置隐藏,但display=1(默认,不设也行)
2、若未使用线性布局,直接通过pos来设置不同的距离,如常见的[10这样的
3、若使用了线性布局(如hbox、vobx,gridLayout)可使用interval来控制距离,interval又可细分为上下左右4个子值
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|SOUI官方论坛 ( 粤ICP备18103663号-2 )

GMT+8, 2019-9-21 23:09

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表