NiftyGui - 如何改变面板的大小

时间:2015-04-04 21:12:26

标签: java lwjgl slick2d nifty-gui

在应用程序运行时,是否可以在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);

并没有任何改变。

1 个答案:

答案 0 :(得分:3)

好的,我解决了这个问题。我用错了方法。解决方案是使用setConstraintHeight(SizeValue)而不是setHeight(int)

`Element f = nifty.getCurrentScreen().findElementById("p4");
f.getParent().layoutElements();
f.setConstraintHeight(new SizeValue(f.getHeight() + 5 + "px"));`