GridBagLayout?

  • Hi,


    ich suche mich gerade dumm und dusselig, werde aber nicht fündig: Gibt es irgend etwas, was dem GridBagLayout unter Swing entspricht auch für den Androiden? Also ein Layout, in dem ich einzelne "Zellen" spalten- und/oder zeilenweise zusammenfassen kann, diesen Gewichtungen geben kann, für die Elemente darin festlegen kann, wie stark sie in welche Richtung expandieren sollen etc. pp?


    Also eine Art Table-Layout das aber wirklich flexibel ist?


    Einfach ein paar der simpleren Layouts so lange ineinander verschachteln bis ich das gleiche Ergebnis habe dürfte ja eher eine Performancefalle sein...


    Oxy

  • Du kannst doch aber im Tablelayout sagen welche Spalten shrinkable / expandable sein sollen.


    Code
    TableLayout tl = (TableLayout) findViewById(R.id.tableLayout1);
           		tl.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT));
           		tl.setColumnStretchable(1, true);
           		tl.setColumnShrinkable(1, true);
  • Du kannst doch aber im Tablelayout sagen welche Spalten shrinkable / expandable sein sollen.



    Naja, das ist glaube ich nicht ganz das, was GridBagLayout kann.


    Vielleicht zwei Beispiele: Wenn ich ein Layout haben möchte, in dem das obere Element die volle verfügbare Höhe und Breite belegt und das untere Element (die untere Tabellenzeile) nur so hoch sein soll, wie das UI-Element darin - wie realisiere ich das?


    Oder eine eher tabellenartige Struktur mit zwei Spalten und mehreren Zeilen, in der die linke Spalte nur so breit sein soll wie das breiteste Element in den verfügbaren Zeilen und die rechte Spalte die verbleibende Breite belegen soll UND die darin befindlichen Elemente ebenfalls die gesamte verfügbare Breite ausnutzen sollen - wie geht das mit dem TableLayout?


    Beides ganz klassische Anwendungfälle, welche sich mit so etwas wie dem GridBagLayout ganz simpel erledigen lassen.

  • OK, ich habe was gefunden: es gibt für verschiedene View-Typen (inclusive Layouts) einen Parameter "weight", der dann innerhalb des LAyouts festlegt, wie stark sich das Element im vergleich zu allen anderen ausbreiten darf. Das ist zwar ein recht primitiver Ersatz für die Gewichtungen in X- und y-Richtung, die das GridBagLayout kennt, aber damit lässt sich zumindest schon mal was anfangen.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!