运行应用程序时是否可以在NiftyGui中更改面板的大小?我尝试了这段代码://init
mainScreen = new ScreenBuilder("main") {{
controller(sc);
layer(new LayerBuilder("foreground"){{
childLayoutCenter();
panel(new PanelBuilder("p1"){{
childLayoutAbsoluteInside();
backgroundColor("#00ff00");
width("100%");
height("100%");
padding("10px");
panel(new PanelBuilder("p4"){{
x("100%");y("100%");
height("20%");
width("20%");
backgroundColor("#0000ff");
}});
}});
}});
}}.build(nifty);
//update()
Element f = nifty.getCurrentScreen().findElementById("p4");
f.getParent().layoutElements();
f.setHeight(f.getHeight() + 300);
并没有改变。
最佳答案
好的,我解决了这个问题。我使用了错误的方法。解决方案是使用setConstraintHeight(SizeValue)
代替setHeight(int)
`Element f = nifty.getCurrentScreen().findElementById("p4");
f.getParent().layoutElements();
f.setConstraintHeight(new SizeValue(f.getHeight() + 5 + "px"));`