Jochen Z
- Forum-Beiträge: 51
01.02.2011, 18:43:34 via Website
01.02.2011 18:43:34 via Website
Hallo zusammen,
ich bin noch relativ neu mit dem Thema Android Entwicklung. Vermutlich mach ich etwas grundsätzliches Falsch.
Ich habe ein TableLayout in XML Definiert.
Im Code werden bei dieser Tabelle nun dynamisch Reihen hinzugefügt. Jede Reihe hat dabei 3 Spalten. Das ganze passiert wie folgt:
Das funktioniert soweit. Da in Spalte zwei ein Text mehrzeilig angezeigt wird, ist die gesamte Reihe auch recht Hoch. In Spalte 3 ist es nur ein kleiner Text, der am besten Mittig in der Vertikalen angezeigt werden soll. Und geanu das ist das Problem.
Egal welche LayoutParams ich dem textfeld zuweise, es ist jedesmal nicht sichtbar. Es verschwindet komplett!
Im folgenden Bild sieht man die fertige Tabelle. Es geht dabei um die TextView die das 2:1 anzeigt. Diese hängt nun recht weit oben. Ich hätte sie gern vertikal Mittig in der Reihe.
Aber wie gesagt, immer wenn ich die layoutParams setze, wird die ganze TextView nicht mehr angezeigt (bzw. ist ausserhalb des Bildschirms ...). Das 2:1 ist nicht mehr zu sehen.
Folgendes führt z.B. dazu, dass die TextView mit dem 2:1 nicht mehr zu sehen ist.
Weiß jemand, wie man das Brett vor meinem Kopf lösen kann?
ich bin noch relativ neu mit dem Thema Android Entwicklung. Vermutlich mach ich etwas grundsätzliches Falsch.
Ich habe ein TableLayout in XML Definiert.
1<TableLayout
2 android:id="@+id/abgabeTable"
3 android:layout_width="fill_parent"
4 android:layout_height="wrap_content"
5 android:stretchColumns="1">
6
7 </TableLayout>
2 android:id="@+id/abgabeTable"
3 android:layout_width="fill_parent"
4 android:layout_height="wrap_content"
5 android:stretchColumns="1">
6
7 </TableLayout>
Im Code werden bei dieser Tabelle nun dynamisch Reihen hinzugefügt. Jede Reihe hat dabei 3 Spalten. Das ganze passiert wie folgt:
1TableLayout layout = (TableLayout) this.parent.findViewById(R.id.abgabeTable);
2layout.removeAllViews();
3
4for (...) {
5 TableRow row = new TableRow(this);
6
7 TextView datum= new TextView(this.parent);
8 datum.setText( ..);
9
10 TextView spiel= new TextView(this.parent);
11 spiel.setText( ..);
12
13 TextView tipp= new TextView(this.parent);
14 tipp.setText( ..);
15
16 row.addView(datum);
17 row.addView(spiel);
18 row.addView(tipp);
19
20 layout.addView(row);
21}
22
23 row.addView(datum);
24 row.addView(spiel);
25 row.addView(tipp);
2layout.removeAllViews();
3
4for (...) {
5 TableRow row = new TableRow(this);
6
7 TextView datum= new TextView(this.parent);
8 datum.setText( ..);
9
10 TextView spiel= new TextView(this.parent);
11 spiel.setText( ..);
12
13 TextView tipp= new TextView(this.parent);
14 tipp.setText( ..);
15
16 row.addView(datum);
17 row.addView(spiel);
18 row.addView(tipp);
19
20 layout.addView(row);
21}
22
23 row.addView(datum);
24 row.addView(spiel);
25 row.addView(tipp);
Das funktioniert soweit. Da in Spalte zwei ein Text mehrzeilig angezeigt wird, ist die gesamte Reihe auch recht Hoch. In Spalte 3 ist es nur ein kleiner Text, der am besten Mittig in der Vertikalen angezeigt werden soll. Und geanu das ist das Problem.
Egal welche LayoutParams ich dem textfeld zuweise, es ist jedesmal nicht sichtbar. Es verschwindet komplett!
Im folgenden Bild sieht man die fertige Tabelle. Es geht dabei um die TextView die das 2:1 anzeigt. Diese hängt nun recht weit oben. Ich hätte sie gern vertikal Mittig in der Reihe.
Aber wie gesagt, immer wenn ich die layoutParams setze, wird die ganze TextView nicht mehr angezeigt (bzw. ist ausserhalb des Bildschirms ...). Das 2:1 ist nicht mehr zu sehen.
Folgendes führt z.B. dazu, dass die TextView mit dem 2:1 nicht mehr zu sehen ist.
1LinearLayout.LayoutParams p = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
2p.gravity = Gravity.RIGHT;
3tipp.setLayoutParams(p);
2p.gravity = Gravity.RIGHT;
3tipp.setLayoutParams(p);
Weiß jemand, wie man das Brett vor meinem Kopf lösen kann?
— geändert am 01.02.2011, 18:44:45
Empfohlener redaktioneller Inhalt
Mit Deiner Zustimmung wird hier ein externer Inhalt geladen.
Mit Klick auf den oben stehenden Button erklärst Du Dich damit einverstanden, dass Dir externe Inhalte angezeigt werden dürfen. Dabei können personenbezogene Daten an Drittanbieter übermittelt werden. Mehr Infos dazu findest Du in unserer Datenschutzerklärung.