layout组件的问题

当设置Layout的ResizeMode为Container时,容器的大小不受子组件缩放的控制,好像只考虑了子组件scale为1的情况,space在缩放不为1的情况下也不对

1赞

你可以设置子节点的size来达到同样效果,而且layout的大小也能受影响

比如你想node.scale = 3;

可以通过node.width *= 3;node.height *=3达到同样效果

当然我也不知道layout受scale大小影响是好还是不好,现在的layout的resizeMode是根据子节点的逻辑大小来的

1赞

关键是子节点还有子节点,单纯设置子节点的size并不会影响子节点的子节点的坐标

:joy:这就只有问问官方大神了

1赞

呼叫官方。。。。

还有,当type设为Grid时,为什么不能设置每行子节点的最大个数,因为我想ResizeMode为Container

目前Layout没有支持缩放,出于两个原因:

  1. UI元素一般可以不用缩放来规定大小,所有UI和渲染元素都可以支持任意size
  2. scale可以用来做UI动态效果,比如按下按钮以后缩放,或者UI元素的淡入淡出效果(使用scale动画),如果这时scale参与了排版计算,在动态效果播放时排版就乱了
  3. 计算scale会需要消耗更多性能

一个UI元素设计出来以后是否有必要适配多个不同的大小?如果不需要的话,为什么父节点和子节点的尺寸不能在设计过程中就确定好,而需要用到scale来临时更改呢

1赞

那这个问题呢?

那如果需要的话呢

type为Grid时没有办法让子节点都居中显示,比如根据屏幕的宽度自动处理是显示一行5个还是6、7个,只有左边距和间隔设置有效,右边距设置无效,如果能只让左边距和右边距有效,间距自动计算,那就可以实现居中显示Grid了。