3.7.1Bug Label监听SIZE_CHANGED回调中setContentSize失效

版本:3.7.1
平台:chrome

let str = 'test';
this._text = this.node.getChildByName('text').getComponent(Label);
this._bar = this.node.getChildByName('bar');
this._text.node.on(Node.EventType.SIZE_CHANGED, () => {
    const width = this._text.node.getComponent(UITransform).width;
    const uiTransform = this._bar.getComponent(UITransform);
    uiTransform.setContentSize(new Size(width + 80, 110));
}, this);
this.schedule(() => {
    str += '|test';
    this._text.string = str;
}, 1, 10);

_bar的宽度一直没变化。

这个问题没人遇到过吗?在label的change回调里面去改变背景进度的size。比如聊天功能的话,应该很常用啊。。。

有用到,但是没问题

是用的3.7.1吗?我之前用的版本是3.4.2是没问题的。麻烦看下,我的问题在哪?
demo.zip (31.1 KB)

有官方证实一下问题吗? 或者还是因为什么新版本有什么地方需要设置一下?


改下代码.

感谢回复。问题还是没得到解决;NodeEventType.SIZE_CHANGED和Node.EventType.SIZE_CHANGED的效果是一样的,changeSize的方法是执行了的,this._text.node.getComponent(UITransform).width的值也是正确获取到了。this._bar.getComponent(UITransform)的值从chrome的输出看也确实是变了,唯一的问题是实际显示大小没有变化;具体效果如下。WX20230327-155620


漏了一句,抱歉,, :sweat_smile:
image

谢谢:pray:,可以了。 但是 不明白为啥会这样,因为在回调的方法里面,确实是获取到了label的最新width。只是去改变bar的size。一直在找bar的问题。现在是给调用label的updateRenderData就好了。