2012-09-09 6 views
0

J'ai une table qui a une bordure autour de chacune des rangées de la table. J'ai un problème avec la partie frontière lorsque le texte d'une colonne passe sur une deuxième ligne, contrairement au texte de l'autre colonne. Cela fait que la ligne qui n'a pas le texte enveloppé sur une deuxième ligne soit plus courte et un arrière-plan noir sur la deuxième ligne. Comment puis-je obtenir cette rangée à la même hauteur que l'autre rangée?Problème de bordure TableLayout Android

Mon code est:

<?xml version="1.0" encoding="utf-8"?> 
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:background="#013567" > 

    <TableLayout 
     android:id="@+id/tableLayout1" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:shrinkColumns="*" 
     android:stretchColumns="*" > 

     <TableRow 
      android:id="@+id/tableRow2" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:background="#000" > 

     <TextView 
      android:id="@+id/textView2" 
      android:layout_margin="2dip" 
      android:background="#013567" 
      android:gravity="center" 
      android:text="long text abc 123 ong tex ong tex" 
      android:textColor="#fff" > 
     </TextView> 

     <TextView 
      android:id="@+id/textView3" 
      android:layout_margin="2dip" 
      android:background="#013567" 
      android:gravity="center" 
      android:text="short text" 
      android:textColor="#fff" > 
     </TextView> 
    </TableRow> 

    <TableRow 
     android:id="@+id/tableRow2" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:background="#000" > 

     <TextView 
      android:id="@+id/textView2" 
      android:layout_margin="2dip" 
      android:background="#013567" 
      android:gravity="center" 
      android:text="short text" 
      android:textColor="#fff" > 
     </TextView> 

     <TextView 
      android:id="@+id/textView3" 
      android:layout_margin="2dip" 
      android:background="#013567" 
      android:gravity="center" 
      android:text="long text abc 123 ong tex ong tex" 
      android:textColor="#fff" > 
     </TextView> 
    </TableRow> 
</TableLayout> 
</ScrollView> 

Exemple: enter image description here

+0

joindre quelques captures d'écran ... – waqaslam

+0

http://i.imgur.com/EMk3d.png Désolé, j'ai essayé de l'ajouter plus tôt, mais je ne pouvais pas pour une raison quelconque. – Howli

Répondre

1

Ajoutez les propriétés suivantes à votre TextView, pas votre TableRow:

android:layout_height="match_parent"

ou

android:layout_height="fill_parent" (dépréciée)

+0

Cela a fonctionné! Merci beaucoup! :) – Howli

0

essayez de régler ce qui suit à votre TableRow:

android:layout_height="fill_parent" 
+0

Nope désolé que cela n'a pas fonctionné. – Howli

+0

Quelqu'un connait la réponse? – Howli

0

ajouter une nouvelle ligne au en de 'court texte'

par programmation:

  • \n

xml:

  • Appuyez simplement entrer dans votre code XML
+0

Mais sur le paysage et les grands écrans, l'autre zone de texte est plus grande. – Howli

0

Il y a deux façons de résoudre ce problème,

ajouter un FrameLayout autour de chaque texte avec android:layout_height="match_parent".

ou

changer votre stying à appliquer à la table, comme par exemple

How to style a tablelayout in android

réglage de l'arrière-plan de la table pour être le bleu et les frontières d'être noir.

+0

Quand j'ai essayé d'ajouter une mise en page qui ne marchait pas pour moi, mais l'autre lien que vous m'avez donné m'a aidé (enlevé quelques lignes de code dont je n'avais pas besoin)! – Howli

+0

Oui, j'aurais dû mentionner, c'est le meilleur moyen dans la plupart des situations, car le style est sur la table plutôt que le texte. –