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

09-27 08:18