1. Nimm jetzt an unserem Uhans - 3. ADVENT - Gewinnspiel teil - Alle Informationen findest Du hier!

TableLayout Spalten formatieren

Dieses Thema im Forum "Android App Entwicklung" wurde erstellt von Jan_HH, 26.08.2011.

  1. Jan_HH, 26.08.2011 #1
    Jan_HH

    Jan_HH Threadstarter Neuer Benutzer

    Beiträge:
    8
    Erhaltene Danke:
    0
    Registriert seit:
    26.08.2011
    Hallo,

    habe eine App mit einem TableLayout, alles per java-Code zusammengebaut, kein XML (weil die Tabelle sehr dynamisch ist, vom Inhalt her).

    Würde nun gerne

    - die Spalten alle gleich breit machen, auf eine feste Pixelbreite einstellen
    - die Inhalte der Zellen horizontal zentrieren

    aber wie? sowas simples wie "myView.setGravity(Gravity.CENTER_HORIZONTAL)" (für eine Zelle einer Row) ist zwar, laut Dokumenation, der richtige Weg, bringt aber gar nix..

    Gruß+Danke
     
  2. Tom299, 31.08.2011 #2
    Tom299

    Tom299 Android-Experte

    Beiträge:
    602
    Erhaltene Danke:
    120
    Registriert seit:
    31.08.2011
    Hi,

    ich hab eher das umgekehrte Problem, daß ich die Spaltenbreite dynamisch haben will, d.h. eine Spalte sollte so breit sein wie der längste Text. Hab aber keine Ahnung, wie das gehen soll, deswegen muß ich erst mal feste Spaltenbreiten benutzen, damit nichts abgeschnitten wird ...

    Aber umgekehrt ist es recht einfach:
    - width einfach fest setzen, z.b. 40px oder 40dp anstatt wrap_content
    - und gravity funktioniert bei mir problemlos, wobei ich CENTER benutze, aber alles im XML. Sollte aber auch im Java-Code funktionieren. Du mußt halt bei jeder einzelnen TextView die gravity setzen.


    Gruß,
    Tom
     
  3. Jan_HH, 05.09.2011 #3
    Jan_HH

    Jan_HH Threadstarter Neuer Benutzer

    Beiträge:
    8
    Erhaltene Danke:
    0
    Registriert seit:
    26.08.2011
    Hm ja, jetzt klappts..Seltsam, vorher nicht, mit eigentlich dem gleichen Code. also einfach

    myTextView.setWidth(...);
    myTextView.setGravity(Gravity.CENTER_HORIZONTAL);

    Dein Problem wiederum verstehe ich nicht so ganz. Normalerweise wird die Tabelle doch so formatiert, dass jede Spalte so breit ist wie das breiteste Element, was in ihr vorkommt? Und genau das willst Du doch, oder?
     
    Zuletzt bearbeitet: 05.09.2011
  4. Tom299, 05.09.2011 #4
    Tom299

    Tom299 Android-Experte

    Beiträge:
    602
    Erhaltene Danke:
    120
    Registriert seit:
    31.08.2011
    Nein, genau das macht die Tabelle nicht automatisch, sondern jede TextView hat die Breite wie ihr Inhalt, zumindest ist das bei mir so.

    Aber ich habs hinbekommen indem ich Width auf 0 setze und dann mit Weigth die Gewichtung festlege, ähnlich wie in Swing beim GridBagLayout.

    Ich frage mich nur, wieso es nicht schon gleich ein "Tabellen-Activity" in Android gibt, denn Tabellen braucht man eigentlich ständig, sei es zur Anzeige, zum Editieren, Sortieren, Filtern, Selektieren ... falls es sowas schon geben sollte bitte melden ;-)
     
  5. Jan_HH, 05.09.2011 #5
    Jan_HH

    Jan_HH Threadstarter Neuer Benutzer

    Beiträge:
    8
    Erhaltene Danke:
    0
    Registriert seit:
    26.08.2011
    Meinst Du die Breite der TextView oder die Breite der Tabellenspalte an sich? Du hattest erst letzteres geschrieben. Ist ja ein feiner Unterschied..

    naja aber weiterhelfen kann ich Dir da eh nicht ;). Aber nun hast Du es ja auch hinbekommen.
     

Diese Seite empfehlen