SOUI官方论坛

 找回密码
 立即注册
查看: 769|回复: 5

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

[复制链接]
  • TA的每日心情
    开心
    14 分钟前
  • 签到天数: 36 天

    [LV.5]常住居民I

    378

    主题

    838

    帖子

    8011

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    8011
    发表于 2019-8-9 10:43:24 | 显示全部楼层 |阅读模式
    3.jpg
    大布局为上下布局,上下平分,见下图的两个框,weight均为1。
    4.jpg
    上面布局中又分为三个水平方向的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占用剩余的全部高度,若还有其它控件,则类推计算。

    该用户从未签到

    24

    主题

    253

    帖子

    1183

    积分

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    1183

    突出贡献优秀版主

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

    使用道具 举报

    该用户从未签到

    4

    主题

    58

    帖子

    594

    积分

    04:00化神期

    Rank: 4

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

    使用道具 举报

    该用户从未签到

    4

    主题

    67

    帖子

    1388

    积分

    06:00合体期

    Rank: 6Rank: 6

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

    使用道具 举报

    该用户从未签到

    7

    主题

    42

    帖子

    218

    积分

    02:00元婴期

    Rank: 3Rank: 3

    积分
    218
    发表于 2019-8-29 16:03:24 | 显示全部楼层
    大佬 请教一下,布局里面控件之间的间距怎么设置?
  • TA的每日心情
    开心
    14 分钟前
  • 签到天数: 36 天

    [LV.5]常住居民I

    378

    主题

    838

    帖子

    8011

    积分

    管理员

    Rank: 9Rank: 9Rank: 9

    积分
    8011
     楼主| 发表于 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个子值
    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

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

    GMT+8, 2020-2-24 09:17

    Powered by Discuz! X3.4

    Copyright © 2001-2020, Tencent Cloud.

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