[]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);
}
完整项目请见附件。
没有找到相关结果
已邀请:
要回复问题请先登录
2 个回复
cuixueying
赞同来自:
cuixueying
赞同来自:
打开你的IDE的UI编辑界面,F12再发布一遍,然后在
类里,Ctrl+F搜下
如果有name的话,应该就没有问题了,你在发布看下,可能是你发布UI界面没有成功导致的
第二个问题:把view_btn.ui下的组件的相对布局去掉就OK了