[英]Libgdx Table too small, does not fill viewport
我正在嘗試使用表格來創建一個帶有排列的按鈕和標簽的菜單。 我正在使用 libgdx 的最新夜間版本,它改變了 Table API(除其他外)。
這是我的 Screen 構造函數中的代碼:
this.mStage = new Stage();
this.mTable = new Table();
this.mTable.setFillParent(true);
this.mTable.debugTable();
this.mStage.addActor(this.mTable);
// now I add some stuff to the table
// ...
我的resize
功能如下所示:
this.mStage.setViewport(width, height, true);
this.mTable.setFillParent(true);
this.mTable.invalidate();
我的render
功能有以下幾點:
System.out.println("Table size is " +
this.mTable.getWidth() + " by " +
this.mTable.getHeight());
this.mStage.draw();
Table.drawDebug();
雖然我的控制台顯示正確的大小:
Table size is 480.0 by 640.0
表格大小被收縮包裹在其子項周圍,並且不會擴展到 480x640 的正確大小。
有任何想法嗎?
為了他人的利益,回答我自己的問題。 我向表格添加小部件的方式不正確:
this.mTable.row();
this.mTable.add(button).fillX();
我需要調用fillX()
的方法row()
this.mTable.row().fillX();
this.mTable.add(button);
希望這可以幫助某人。
通過首先使用.expandX()
方法擴展單元格,然后通過調用fillX()
用小部件填充該單元格,可以輕松更正將小部件添加到表格中的錯誤版本。 所以你的初始代碼:
this.mTable.row();
this.mTable.add(button).fillX();
應更正為以下版本:
this.mTable.row();
this.mTable.add(button).expandX().fillX();
這兩行可以縮短為一行:
this.mTable.add(button).expandX().fillX().row();
要添加到上述答案中,知道您可以像這樣為表設置這些設置默認值可能會有所幫助:
this.mTable.defaults().expandX().fillX();
這些設置將統一應用於所有行和單元格。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.