2010-01-19 10 views
6

Ich habe folgendesAndroid TableRow RelativeLayout Ausgabe

<TableRow xmlns:android="http://schemas.android.com/apk/res/android" 
      android:id="@+id/admin_row" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content" 
      android:gravity="center_horizontal"> 
    <RelativeLayout android:layout_width="fill_parent" 
        android:layout_height="fill_parent" 
        android:orientation="horizontal" 
        android:background="@color/silver"> 

ich dynamisch den Tisch bevölkern, sondern mit der relativen Layout farbig silber es reicht nur etwa 3/4 der Tabellenzeile. Wenn ich ein LinearLayout mit horizontaler Ausrichtung verwende, überspannt es vollständig, aber wenn ich es in vertikal ändere, tritt das gleiche Problem auf. Ich brauche ein relatives Layout in der Tabellenzeile, weil ich so etwas brauche:

Wert
Detail MoreDetail.

Haben Sie Ideen, wie Sie das relative Layout auf die Tabellenzeile verteilen können?

Antwort

1

Sie sollten das Attribut android:background="@color/silver" auf dem TableRow setzen.

Ich hatte das gleiche Problem mit einem LinearLayout in einem ScrollView.

Hoffe, dass es hilft,

Lint

+0

Ich versuche nicht, die Zeile zu färben. Ich habe es als Debug-Mechanismus verwendet, um festzustellen, warum sich mein relatives Layout nicht über die gesamte Zeile erstreckt. – phogel

6

So hatte ich zog vorübergehend von diesem Problem auf, aber es kam wieder auf. Ich wiederhole, das Problem, das ich sah, war, dass ein relatives Layout innerhalb einer Tabellenzeile sich nicht über die gesamte Zeile erstreckte, egal, wofür ich Breite und Höhe festlegte. Ich habe eine Lösung gefunden, die jedes Layout zwingt vollständig die Tabellenzeile zu überbrücken (horizontal):

<TableRow xmlns:android="http://schemas.android.com/apk/res/android" 
      android:id="@+id/detail_row" 
      android:layout_width="fill_parent" 
      android:layout_height="wrap_content"> 
    <RelativeLayout android:layout_height="fill_parent" 
        android:layout_width="0dp" 
        android:layout_weight="1" 
        android:orientation="horizontal"> 

Hinweis dies scheint, was die Tabellenzeile java docs Zustand in direktem Widerspruch zu sein:

Der Kinder einer TableRow benötigen nicht, um die Attribute layout_width und layout_height in der XML-Datei anzugeben. TableRow erzwingt immer die Werte als FILL_PARENT und WRAP_CONTENT.

+1

Du hast gerade meinen Tag gemacht und hilfst mir, meinen Abgabetermin einzuhalten. Vielen Dank! – zabawaba99

12

Versuchen Sie die Einstellung Android: stretchColumns = "0" oder sonst android: stretchColumns = "*" auf Ihrem TableLayout-Tag.

+0

wow, das ist eine perfekte Antwort! – PCoder