TableLayout Spaltenbreite

  • 8 Antworten
  • Neuester Beitrag
Diskutiere TableLayout Spaltenbreite im Android App Entwicklung im Bereich Betriebssysteme & Apps.
G

Gingerbread

Fortgeschrittenes Mitglied
Hallo,
habe mir eine Tabelle im TableLayout gebaut. Passt auch alles soweit.
Wenn ich nun etwas längere Variablen einfüge, dann wird die Spalte, in der die Variable eingefügt wird, nach rechts erweitert.
Wie kann ich es schaffen, dass die Spalten eine feste Größe besitzen?
Dann würden eine Zeile nach unten erweitert und nicht nach rechts.
 
S

swordi

Lexikon
du musst das textfeld der spalte beschränken
 
G

Gingerbread

Fortgeschrittenes Mitglied
Meinst du mit android:maxwidth="wert"?
das habe ich auch schon versucht, hat aber auch nicht fukntioniert.
 
G

Gingerbread

Fortgeschrittenes Mitglied
Noch nie jmd Daten in eine Tabelle eingetragen?
 
S

swordi

Lexikon
deine infos sind wohl auch sehr dürftig

zeig halt dein tablelayout mal her, dann kann man eher was finden.
bis jetzt ist mir hier noch kein hellseher untergekommen ;)
 
G

Gingerbread

Fortgeschrittenes Mitglied
Ok also hier der Code aus der xml:
Code:
<?xml version="1.0" encoding="utf-8"?>
<TableLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent">
 
  
 <TableRow>
    <TextView
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"   
    android:paddingLeft="15dip"
    android:paddingTop="15dip"
    android:text="Montag"
    />
    
    <TextView 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content"  
    android:paddingLeft="30dip"
    android:paddingTop="15dip"
    android:text="Dienstag" 
    />
    
    <TextView 
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"   
    android:paddingLeft="50dip"
    android:paddingTop="15dip"
    android:text="Mittwoch" 
    />
</TableRow>

<TableRow>
    <TextView
    android:layout_height="wrap_content"
    android:layout_width="wrap_content"
    android:paddingLeft="15dip"
    android:paddingTop="15dip"
    android:text="Fehler"
    android:id="@+id/au_mon"
 
    />
    
    <TextView 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content"
    android:paddingLeft="30dip"
    android:paddingTop="15dip"
    android:text="Fehler"
    android:id="@+id/au_die" 
    />
    
    <TextView 
    android:layout_height="wrap_content" 
    android:layout_width="wrap_content"    
    android:paddingLeft="50dip"
    android:paddingTop="15dip"
    android:text="Fehler" 
    android:id="@+id/au_mit"
    />
</TableRow>
</TableLayout>
Jetzt werden die Felder der zweiten Zeile per setText() geschrieben.
Jedoch ist das Problem, dass die anderen Spalten vom Bildschirm "gedrückt" werden.
Code:
Montag           Dienstag          Mittwoch

Fehler             Fehler             Fehler



Nach setText():

Montag                        Dienstag       Mittwoch

Dies ist ein langer Satz   Fehler          Fehler



Ich möchte aber folgendes haben:

Montag          Dienstag         Mittwoch

Dies ist ein     Fehler            Fehler
langer Satz
 
S

swordi

Lexikon
dann musst du deine textviews entsprechend ausrichten.

ich würde auch vom tablelayout abraten.

<Linearlayout vertical>
<LinearLayout horizontal>
<TextView
layout_width="0"
layout_weight="1">
<Textview wie vorher
...
</Linearlayout>
<nächste reihe

usw
 
G

Gingerbread

Fortgeschrittenes Mitglied
Ok, habe ich jetzt gemacht. Also habe alles in ein normales LinearLayout gepackt.
Wie bekomme ich es nun hin, dass alle Spalten gleich groß sind?
 

Anhänge

S

swordi

Lexikon
mit layout_widht="0" und layout_weight="1" sollten sie sich den platz eigentlich dritteln.

musst damit ein wenig rumspielen.