[TableLayout / TableRow] identische Maße von Zeilen und Zeilenelementen manipulieren

  • 1 Antworten
  • Letztes Antwortdatum
T

Tersus

Gast
Guten Tag,

wie man das TableLayout auf herkömmliche Weise nutzt, ist mir absolut klar.

Ich habe nun dynamisch, ohne XML, 3 Zeilen mit jeweils 7 Objekten vom Typ Button erzeugt.
Die entsprechenden LayoutParameter sind so gesetzt, dass alle Zeilen und Zeilenelemente die gleiche Höhe und Breite haben. Das TableLayout füllt die Bildschirm komplett aus.

Nun ist es so, dass mein Handy eine Auflösung von 1280*720 hat. Bei 7 Objekten vom Typ Button, muss das Layout natürlich improvisieren. 720 ist schließlich nicht restlos durch 7 teilbar.

Was macht das Layout? Die ersten 6 Objekte haben eine Breite von, in dem Fall, 103 Pixeln und das letzte Objekt lediglich 102 Pixel.

Nun möchte ich aber, dass das Layout wie folgt vorgeht.
Das erste Objekt, bzw. die Objekte in der ersten Spalte, solle(n) stets breiter sein, als die restlichen Elemente, aber so schmal wie möglich.
Die restlichen Elemente sollen identischer Breite sein.

In meinem Fall wären die ersten Objekte der Spalte 108 Pixel breit und der Rest 102 Pixel.

Geht das, ohne das TableLayout tiefgreifend zu erweitern?
 
Code:
final int deviceWidth = 720;

// die Breite der Button 2-7
int buttonWidth = deviceWidth / 7;

// die Breite des ersten Button

int firstButtonWidth = buttonWitdh + (deviceWidth % 7);
 
Zurück
Oben Unten