1

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

什么都没有改变。

4

1 回答 1

3

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

`Element f = nifty.getCurrentScreen().findElementById("p4");
f.getParent().layoutElements();
f.setConstraintHeight(new SizeValue(f.getHeight() + 5 + "px"));`
于 2015-04-05T04:39:18.290 回答