Button über TableRow legen

  • 4 Antworten
  • Letztes Antwortdatum
Gibbsnich

Gibbsnich

Ambitioniertes Mitglied
0
Hallo,

ich habe eine Liste, die mit zur Laufzeit erzeugt und mit Daten gefüllt wird.
Dabei erzeuge ich eine TableRow und erstelle mit tableRow.addView() die gewünschte Menge Spalten.

Jetzt soll die Liste um eine Funktion erweitert werden, die, ähnlich wie beim iPhone, nach einem Wischen in einer Zeile einen Button auf eben dieser Zeile erscheinen lässt. Dabei darf der Button durchaus über dem dort stehenden Text gelegt werden.

Aber genau daran scheitere ich gerade :sad:
Wenn ich den Button mit .addView insertiere, erscheint er rechts und ist nur teilweise zu sehen.
Kann ich den Button tatsächlich *über* die Spalten legen?

Ich hoffe, Ihr könnt mir helfen!
 
Das kommt wahrscheinlich darauf an, was für ein layout du in der Row hast.
Evtl alles in ein relativLayout packen den eigentlich Row Inhalt dann noch in dem bisherigen layout verpacken.
Den button kannst du dann in das Relativ Layout reinpacken und dort auch ganz gut bestimmen wo er hin soll.
 
Hallo amfa,

vielen Dank für deine Antwort.
Ich komme leider nicht ganz klar damit.

Bisher hatte ich ein TableLayout und für jede Zeile ein TableRow.
In dieses TableRow kommt als erstes eine Checkbox, dann 1-3 Textviews oder Images.

Das sieht so aus:
liste_alt.png

(OK, bitte keine Anmerkungen zum Layout, das ist nur intern :biggrin:)

Ich habe das jetzt geändert und benutze noch ein Framelayout, in das die TableRow mit allen enthaltenen Views gelegt wird. Zum Test insertiere ich noch eine weitere Textview über die TableRow.

Dann sieht es so aus:
liste_neu2.png


Nachdem ich den FrameLayout in der Breite auch auf WRAP_CONTENT gesetzt habe, sehe ich auch wieder alle gewünschten Views.
Aber leider ist die Spaltenanordnung komplett durch den Wind.

Wie geht das wieder weg??
 
Zuletzt bearbeitet:
Uh ich vermute jetzt mal da fehlen Breite angaben, ich hätte es auch andersrum gelöst und das Framelayout eher in die TableRow getan und nicht andersrum.

Ich würde aber hingehen und in die TableRow ein RealtiveLayout angeben.
Relative Layout | Android Developers

Mit dem Relative Layout kannst du dann deine normale Row "layouten".
Wenn du jetzt einen Button hinzufügst kannst du den am parentlayout ausrichten und sagen er soll ganz links erscheinen, dann müsste der über den anderen Inhalten angezeigt werden.

Für weiteres müsste ich das mal selbst ausprobieren, ich bin mir nicht ganz sicehr wie sich die TableRow dann verhält
 
Die Breite der Spalten wird von Android bestimmt und ich lege da gar nichts fest.
Wenn ich das Ganze umdrehe und das FrameLayout in die TableRow lege, stimmen zwar die Spalten wieder, aber meine Test-Views sind weg :crying:

Ich fürchte, da ändert auch ein RelativeLayout nichts...
 
Zurück
Oben Unten