Java [ANDROID] simples aber komplexes Layout! Nicht trivial! Profi gesucht.

  • Ersteller Ersteller Tersus
  • Erstellt am Erstellt am
T

Tersus

Gast
Mahlzeit,

ich beiße mir die Zähne an diesem Layoutentwurf aus.
Gewünscht sind von mir 4 Spalten mit bestimmter dynamischer Breite und mehrere Zeilen.


........................................................Mitte
..........................................................|
..........................................................|
..........................................................V
...............|-----------------+------------------------+------------------+-----------------------|
...............|.spalte.0........|.spalte.1...............|.spalte.2.........|.spalte.3..............|
...............|-----------------+------------------------+------------------+-----------------------|
.Zeile.0...-->.|.langer.Text.....|.EditText.bis.zur.Mitte.|.sehr.langer.Text.|.EditText.hat.kaum.....|
(Zeile.0a).-->.|.................|........................|..................|.Platz.und.muss.in.....|
(Zeile.0b).-->.|.................|........................|..................|.mehrere.Zeilen........|
...............|-----------------+------------------------+------------------+-----------------------|
.Zeile.1...-->.|.kurzer.Text.....|.langer.EditText.bis....|.kurzer.Text......|.EditText.bis.zum.Ende.|
(Zeile.1a).-->.|.................|.zur.Mitte..............|..................|.......................|
...............|-----------------+------------------------+------------------+-----------------------|


- pro Zeile befinden sich in Spalte 0 und Spalte 2 TextViews
- pro Zeile befinden sich in Spalte 1 und Spalte 3 EditTexte

- Spalte 0 und Spalte 1 sollen zusammen genau die Hälfte des Bildschirmes einnehmen
- Spalte 2 und Spalte 3 sollen zusammen genau die Hälfte des Bildschirmes einnehmen

- TextViews sollen in Ihrer Spalte so kurz wie möglich sein, aber so breit, wie die breiteste TextView in dieser Spalte.

- Spalte 0 beginnt stets ganz links
- Spalte 2 beginnt stets ab der Mitte des Bildschirms

- Spalte 1 beginnt dort, wo die breiteste Spalte 0 endet und erstreckt sich bis zur Mitte des Bildschirms
- Spalte 3 beginnt dort, wo die breiteste Spalte 2 endet und erstreckt sich bis zum Ende des Bildschirms

- sollten Spalte 1 und/oder Spalte 3 zu viel Platz beanspruchen, werden Sie in einer zweiten Zeile weitergeführt.


Ich möchte ein sauberes Layout, welches unabhängig vom Device gleiche Ergebnisse liefert. Also nichts "dahingematschtes" mit einem RelativeLayout.


Im Anhang ist ein Bild, damit ihr seht, was ich darstellen und wie ich es darstellen möchte. Bis auf den letzten Stichpunkt trifft alles zu.
 

Anhänge

  • Layout.png
    Layout.png
    37,7 KB · Aufrufe: 320
Mit dem TableLayout habe ich das Layout auch entworfen, welches man auf dem Bild sieht. Ich bin nur gerade verwirrt, weil ich plötzlich den Fehler nicht mehr finde ... .

Ich muss noch mal überlegen, was genau fehlerhaft war.


EDIT:

Es ist mir mit dem TableLayout z.B. nicht möglich, Spalte 2 von der Mitte aus beginnen zu lassen.
 
Zuletzt bearbeitet von einem Moderator: (Erinnerung ist zurückgekehrt)
Dann mach ein LinearLayout als Parent, mit zwei TableLayouts drin, beide weight=1.

Ich würde versuchen beim TableLayout zu bleiben, da es meiner Meinung nach am besten passt. Alles andere wird nur noch hässlicher. Selbst gebaut ist wahrscheinlich am elegantesten, aber ziemlich sicher den Aufwand nicht wert.
 
Das war auch meine Überlegung, so habe ich es nämlich gemacht. Das sieht man am Bild oben. Da reicht der EditText aus Spalte 1 genau bis zur Mitte.

Problem ist dann nur, dass die beiden TableLayouts voneinander unabhängig sind! Wenn einer der EditTexte, sei es der in Spalte 1 oder der in Spalte 3, aufgrund zu vieler Zeichen um eine Zeile oder auch mehr wächst, dann wächst der jeweils andere EditText nicht mit.:freak:

Zum Haareausreißen.
 
Zurück
Oben