簡體   English   中英

Libgdx 表太小,無法填充視口

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM