吸附节点嵌套,子节点吸附父节点布局,保持相对位置固定不变,可以形成一个整体类似代码布局的效果,并且被作为组合内部图元后,组合缩放也不会导致变形或间隙/空隙/间隔变化

1. 现象

初始多个图元在图纸中设置成“组合”,其中有两个图元位置摆放紧挨着,目的是作为一体(有时还会再将两者再设置成组合)

当调整组合的整体尺寸时,内部图元除了文字,尺寸和间距都会按比例被缩放。

有的是在组合尺寸变化的方向缩放,比如示例中的矩形高度和纵向间距不变,宽度和横向间距均发生变化;

文字尺寸不会变化,问号图标尺寸等比缩放了因为示例中属性设置“拉伸”属性为“等比”而不是像示例中矩形图元那样默认是“填充”,同时标题文字与问号图标的间距也在横向按比例缩小;

结果出现如下图所示的效果,标题文字和问号图标并不能成为相对固定的一个整体,即使将两者再做组合,效果也是一样。

 

2. 需求

如下图所示,不管是外层组合怎么拉伸或压缩,以及标题文字图标单独被拖动,问号图标能始终跟随并且相对位置和自身尺寸不变,看起来跟依附的图标是一个整体:

 

 

 

 

 

3. 分析

  • 首先考虑的是用组合,不会起到效果,组合内部尺寸和间隙都是等比缩放。
  • 然后考虑用grid布局1行两列,发现也是不适合的,难以保证自身尺寸不变且与依附的图标间距保持基本不变,相对位置固定。
  • 再是考虑用代码水平布局或者分隔/分割布局,显然太重了,这是个非常常规、常见、轻量化的需求,如果需要很多配置步骤,甚至上升到代码布局的程度,是难以接受的。

4. 方案

用子节点 + 对父节点吸附布局的方式,可以实现需求的效果!

首先,组合内部一旦将某个平级的图元节点,拖放成自己的子图元节点,在不做其他任何配置的情况下,组合的整体缩放、平移,以及当前节点作为父节点的平移,都不会对子节点的尺寸、位置造成影响,即使属于组合内图元节点的子节点:

 

 

当拖放成子节点后,再对父节点做吸附布局,横向选择左,纵向选择中心,问题就解决了,基本实现了需求的所有效果(效果略,参考2中需求的截图):

 

注意,以上方案有不完全满足的地方,就在于标题文字组件自身是矩形和文字部分,组合缩放时文字虽然大小不会变化,但是矩形会被缩放,虽然缩放有限(文字占绝大部分宽度,但不参与缩放),但是也会造成整体宽度略微变化,而问号图标是吸附布局相对距离保持不变,缩放过程中,标题文字的矩形左边固定,宽度略微拉升、文字整体相应向右平移,问号图标尺寸和位置都固定,所以文字与图标间距会略微受影响:

 

 

此外,注意组合节点一般用于吸附到其他图元节点上(比如全屏填充的背景矩形),如果直接在组合内部再做对背景矩形的吸附节点布局,就会发生错乱!即使是相对组合内其他图元节点吸附布局,但是只要没有拖放成为被吸附节点的子节点,那么都会出现布局问题,不会达到想要的效果。

保证对父节点做吸附布局,问题就都没有了,而且即使外层有多层吸附布局,都不会受影响!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

IOTOS

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值