2017-01-07 3 views
1

Ich versuche, eine Zellenbreite in meiner LibGDX-Tabelle zu setzen, und es ignoriert den Wert, den ich überlasse. Ich vermute, es ist, weil es unter Reihen ist, die füllen und Colspan haben, aber ich kann nicht genau erklären, warum es geschieht.Zellenbreite nicht respektiert, wenn Colspan verwendet wird

Hier ist ein Bildschirm: Example

ich die Zelle meines Play-Taste möchte in der Breite kleiner sein, so schrieb ich diesen Code:

setDebug(true, true); //just mentionning, this is in the constructor of a class that extends Table, to prevent having table creation code on my screen 

setWidth(400f); 
setHeight(80f); 

padLeft(30f); 
padRight(30f); 

Image image = new Image(assets.getTexture("gfx/menu/level-online.png")); //TODO icon depends on state 
image.setScaling(Scaling.fill); 

Button playButton = new TextButton(level.getType() == LevelType.RACE ? "Play" : "Visit", skin); 
Button editButton = new TextButton("Edit", skin); 

add(level.getName()).bottom().left().colspan(2).expand(); 
add(image).width(30f).height(30f); 
row(); 
add(level.getOwner()).top().left().colspan(3).expand(); 
row(); 
add(playButton).width(40f).center(); //HERE 
add(editButton).left().colspan(2); 

Wie Sie sehen können, ist die Breite der Die Zelle des Play-Buttons soll 40 sein, aber es ist viel mehr. (Als Referenz ist die Wolke 30 x 30) Wie kann ich das beheben?

+0

Versuchen Sie, 'expand()' zu der Zelle der Bearbeitungsschaltfläche hinzuzufügen. – Tenfour04

+0

@ Tenfour04, Xoppa erzählte mir das gleiche auf #libgdx in Freenode. Es funktionierte, aber streckte die Play-Taste auf seine Zellgröße. Ich habe es mit verschachtelten Tabellen behoben. – Winter

Antwort

1

Fixed es mit einer Tabelle in meiner letzten Zeile, um Elemente zu trennen. Danke an Xoppa und Tenfour04 für ihre Hilfe.

add(level.getName()).bottom().left().colspan(2).expand(); 
add(image).width(30f).height(30f); 
row(); 
add(level.getOwner()).top().left().colspan(3).expand(); 
row(); 
Table buttons = new Table(); 

buttons.add(playButton).padRight(10f); 
buttons.add(editButton); 

add(buttons).expand().colspan(3).left(); 
Verwandte Themen