TableRows in ListView darstellen

Luebbi

Mitglied
Hallo

Ich habe ein Problem mit der Darstellung von TableRows in einem ListView.
Ich gehe so vor:
Zunächst erzeuge ich TableRows aus einem Layout, befülle die Spalten (TextViews)
und lade das TableRow in ein Array

Dem ListView ist ein ArrayAdapter zugewiesen, welcher mein TableRow-Array als Datenquelle hat.
GetView() habe ich überschrieben und gebe dort das verlangte TableRow aus dem Array zurück.
Das funktioniert soweit.

Aber:
Die Spalten sind nicht ausgerichtet, soll heißen, untereinander liegende Zellen
sind nicht in einer Linie sondern haben alle unterschiedliche Breiten.

Ein TableLayout passt die Breiten automatisch an. Geht das auch beim ListView?

Hier mein TableRow
Java:
<?xml version="1.0" encoding="utf-8"?>
<TableRow xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/RowTitle"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >


	<TextView
	    android:id="@+id/txtTitleRowTitle"
	    android:layout_width="wrap_content"
	    android:layout_height="wrap_content"
	    android:paddingRight="20dp"
	    android:paddingTop="10dp"
	    android:text="@string/txtMediumText"
	    android:textAppearance="?android:attr/textAppearanceMedium" />
	
	<TextView
	    android:id="@+id/txtTitleRowVersion"
	    android:layout_width="wrap_content"
	    android:layout_height="wrap_content"
	    android:paddingRight="20dp"
	    android:paddingTop="10dp"
	    android:text="@string/txtMediumText"
	    android:textAppearance="?android:attr/textAppearanceMedium" />
	
</TableRow>

Viele Grüße
Lübbi
 
Hallo,

also wenn Deine TableRow nur zwei Elemente beinhaltetet, ist es bedeutend einfacher mit einem LinearLayout und weight oder einem RelativeLayout zu arbeiten. Wieso so umständlich?

Gruß
 
also wenn Deine TableRow nur zwei Elemente beinhaltetet, ist es bedeutend einfacher mit einem LinearLayout und weight oder einem RelativeLayout zu arbeiten. Wieso so umständlich?

Mir ging es ums Prinzip: Ich lade Daten dynamisch in ein TableRow-Vector, diese sollen als Tabelle in eine ListView angezeigt werden. Dabei sollen die Spalten so breit werden wie deren breitestes Element, und das soll automatisch geschehen.
Offenbar kann das nur das TableLayout. Innerhalb einer ListView scheit es nicht zu funktionieren. Deshalb werde ich beim TableLayout bleiben.

Viele Grüße
 

Neue Themen


Zurück
Oben