1. Wir haben diesmal 2 Gewinnspiele zeitgleich für euch - Gewinne einmal ein UMI Plus E - Beim 2ten könnt ihr ein Nomu S30 gewinnen!
  1. Jan_HH, 26.08.2011 #1
    Jan_HH

    Jan_HH Threadstarter Neuer Benutzer

    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

    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

    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

    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

    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

Besucher kamen mit folgenden Begriffen auf unsere Seite:

  1. Java Table Layout

    ,
  2. android tablelayout spalten

    ,
  3. androi tabelle mit gleichen Spalten

    ,
  4. android java TableLayout Hilfe bitte,
  5. android tablelayout