2011-06-17 5 views
2

J'ai un problème avec ma TableLayout. Il se compose de deux colonnes et plusieurs lignes. Lorsque le TextView de la deuxième colonne contient du texte d'une largeur plus grande, il pousse les TextView dans cette colonne (dans les lignes ci-dessous) hors de l'écran (vers la droite). Au lieu de cela, je veux que le texte reste à gauche et que le texte soit terminé à la fin avec une ellipse. Quelqu'un peut-il voir ce qui ne va pas avec mon XML?Question Android sur TableLayout et ellipsis

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:orientation="vertical" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:background="#4096cc" > 

    <TableLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:background="@drawable/roundedshape" 
     android:layout_margin="5dp" 
     android:stretchColumns="1"> 

     <TableRow> 
      <TextView 
       android:layout_column="1" 
       android:text="Server Name" 
       android:textStyle="bold" 
       android:padding="10dip" /> 
      <TextView 
       android:id="@+id/txtServerName" 
       android:text="" 
       android:gravity="right" 
       android:ellipsize="end" 
       android:padding="10dip" /> 
     </TableRow> 

     <View 
      android:layout_height="2dip" 
      android:background="#FF909090" /> 

     <TableRow> 
      <TextView 
       android:layout_column="1" 
       android:text="Status" 
       android:textStyle="bold" 
       android:padding="10dip" /> 
      <ImageView 
       android:id="@+id/status" 
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_gravity="right" 
       android:padding="10dip" 
       android:src="@drawable/icon" /> 
     </TableRow> 
      . 
      . 
      . 

    </TableLayout> 
</LinearLayout> 

Répondre

4

En fonction de la colonne que vous voulez mettre le cap, vous devez utiliser

android:shrinkColumns=x 

dans votre TableLayout où x est l'indice de la colonne que vous voulez ellipsize.

Vous souhaitez également définir également les lignes maxLines sur TextView à 1.

+0

Merci pour votre aide, je n'étais pas au courant de shrinkColumns. J'ai essayé cela, cependant, et pour une raison quelconque, cela rend la rangée très haute en hauteur et aussi toute la rangée à travers la largeur de l'écran est la 2ème colonne ... Je ne peux pas voir la première colonne du tout. Le texte de la 2ème colonne ne plafonne pas non plus avec une ellipse. Des idées? – littleK

+1

2 est la valeur correcte pour votre mise en page. La colonne que les TextViews que vous souhaitez réduire sont dans la deuxième colonne indexée (troisième). Vous avez commencé dans la deuxième colonne en définissant layout_column égal à 1. Il s'agit également d'un attribut indexé à zéro. –

+0

Ok, j'ai fait un ajustement mineur et utilisé Android: stretchColumns = "1" android: shrinkColumns = "2", et tout semble bon. Merci de votre aide! – littleK