4

テーブルを使用して、ボタンとラベルが並んだメニューを作成しようとしています。私は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の正しいサイズには拡張されません。

何か案は?

4

3 に答える 3

5

他の人の利益のために私自身の質問に答えます。テーブルにウィジェットを追加する方法が正しくありませんでした。

this.mTable.row();
this.mTable.add(button).fillX();

fillX()のメソッドを呼び出す必要がありましたrow()

this.mTable.row().fillX();
this.mTable.add(button);

これが誰かを助けることを願っています。

于 2012-10-02T05:43:01.483 に答える
1

上記の回答に追加するには、次のようにテーブルのこれらの設定をデフォルトにすることができることを知っておくと役立つ場合があります。

this.mTable.defaults().expandX().fillX();

設定はすべての行とセルに均一に適用されます。

于 2020-02-24T16:28:31.077 に答える
0

テーブルにウィジェットを追加する誤ったバージョンは、最初に.expandX()メソッドを使用してセルを展開し、次にを呼び出してそのセルにウィジェットを入力することで簡単に修正できますfillX()。したがって、最初のコードは次のとおりです。

this.mTable.row();
this.mTable.add(button).fillX();

次のバージョンに修正する必要があります。

this.mTable.row();
this.mTable.add(button).expandX().fillX();

これらの2行は1つに短縮できます。

this.mTable.add(button).expandX().fillX().row();
于 2018-10-14T05:04:29.540 に答える