[]VBOX动态增加的元素没有自动布局

希望在代码中动态往VBOX中添加元素。通过vbox的纵向排列功能布局添加的子组件。
做了个例子如下:
有两个问题,请见代码中的注释。谢谢
import test = ui.test.TestPageUI;
import Label = laya.ui.Label;
import Handler = laya.utils.Handler;
import Loader = laya.net.Loader;

class TestUI extends ui.test.TestPageUI {

constructor() {
super();
var btn1=new ui.test.view_btnUI();
var btn1_btn:laya.ui.Button=btn1.getChildByName("btn") as laya.ui.Button;

//问题一: 这里为什么获取不到子node呢?打印显示btn1_btn为null
console.log(btn1_btn);
// btn1_btn.label="first";
this.myvbox.addChild(btn1);

var btn2=new ui.test.view_btnUI();
var btn2_btn:laya.ui.Button=btn2.getChildByName("btn") as laya.ui.Button;
// btn2_btn.label="second";
this.myvbox.addChild(btn2);

var btn3=new ui.test.view_btnUI();
var btn3_btn:laya.ui.Button=btn3.getChildByName("btn") as laya.ui.Button;
// btn2_btn.label="second";
this.myvbox.addChild(btn3);

//问题二:系统动态添加btn到VBOX中,则VBOX可以依次把这些动态添加的按钮展示出来。就像界面中左边那一列VBOX一样。但实际上,执行结果只看到一个btn被加入了


}

}

// 程序入口
Laya.init(600, 400);
Laya.loader.load([{ url: "res/atlas/comp.json", type: Loader.ATLAS }], Handler.create(this, this.onLoaded));

function onLoaded(): void {
//实例UI界面
var testUI: TestUI = new TestUI();
Laya.stage.addChild(testUI);
}

 
 

box2.PNG

 
 
完整项目请见附件。
box.PNG
已邀请:

cuixueying

赞同来自:

能给个例子我们看下吗?

cuixueying

赞同来自:

 第一个问题: 
11.png

打开你的IDE的UI编辑界面,F12再发布一遍,然后在
22.png

类里,Ctrl+F搜下
33.png

 如果有name的话,应该就没有问题了,你在发布看下,可能是你发布UI界面没有成功导致的 
第二个问题:把view_btn.ui下的组件的相对布局去掉就OK了

要回复问题请先

商务合作
商务合作