2012-08-03 3 views
7

Mon application Tablet affiche un ListView avec plusieurs TextViews dans chaque élément de campagne (en utilisant un adaptateur de curseur personnalisé). J'ai environ 6-7 colonnes, Quelle est la meilleure façon de donner des espaces égaux à toutes les colonnes?ListView Android avec plusieurs colonnes correctement alignées

En ce moment j'ai essayé:

  • même poids à chaque TextView. Mais ceci n'est jamais correctement aligné.
  • Utilisé largeur maximale avec 1er, toujours pas de chance, on peut facilement déborder et pousser le prochain à droite.

    <TextView 
        android:layout_width="20dp" 
        android:layout_height="wrap_content" 
        android:layout_margin="5dp" 
        android:layout_weight="1" 
        android:text="column 1" 
        android:textSize="22sp" /> 
    

Répondre

14

Les poids sont corrects, mais vous devez définir android:layout_width sur 0dp chaque fois que vous utilisez un poids physique, sinon vos vues risquent de ne pas être mises à l'échelle correctement.

De même, ne mélangez pas des largeurs fixes avec des poids de mise en page. Si vous choisissez d'utiliser des poids, utilisez-les partout dans votre disposition de ligne.

0

Tableau A Disposition d'une rangée. L'idée de table est la même distance.

3

Ce n'est pas une bonne pratique d'utiliser des largeurs et hauteurs fixes sur Android, laissez Android faire la mise en page. Vous pouvez utiliser un linearLayout avec des poids afin d'aligner correctement les éléments dans différentes lignes. utilisez "android: width = 0dp" et utilisez le poids pour coter les différents champs. Une approche alternative serait d'utiliser un TableLayout, mais c'est plutôt compliqué. Cela fonctionne cependant.

0

Dans mon cas (pour la vue errorlog) j'ai spécifié la largeur pour 4 colonnes (TextViews) de 5 et 1 (dans le diddle avec la description d'erreur) a obtenu poids = 1 pour prendre tout l'espace disponible. Ca a l'air sympa et pas de pattes de performance.

0

Il semble qu'il soit impossible d'obtenir une table soignée comme ListView, car avec la gestion du poids, les différentes colonnes de contenu ont chacune une taille de colonne différente. Quelqu'un a une solution XML? La largeur fixe ne fonctionne pas, car j'ai besoin de supporter différents écrans.

Questions connexes