6
votes

Colonnes à ListView Android

Comment puis-je faire des colonnes dans Android ListView? J'ai cette liste Disposition de l'élément XML:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent" android:layout_height="fill_parent"
    android:orientation="horizontal">
    <TextView android:layout_weight=".3" android:layout_width="wrap_content"
        android:layout_height="fill_parent" android:id="@+id/hour"
        android:gravity="center" />
    <ImageView android:id="@+id/symbol" android:scaleType="fitCenter"
        android:layout_gravity="center_horizontal" android:layout_width="wrap_content"
        android:layout_height="wrap_content" android:layout_weight=".5" />
    <TextView android:layout_weight=".8" android:layout_width="wrap_content"
        android:layout_height="fill_parent" android:id="@+id/temperature"
        android:gravity="center" />
    <TextView android:layout_weight="1" android:layout_width="wrap_content"
        android:layout_height="fill_parent" android:id="@+id/percipitation"
        android:gravity="center" />
    <TextView android:layout_weight="1" android:layout_width="wrap_content"
        android:layout_height="fill_parent" android:id="@+id/wind_speed"
        android:gravity="center" />
    <TextView android:layout_weight="1" android:layout_width="wrap_content"
        android:layout_height="fill_parent" android:id="@+id/wind_direction"
        android:gravity="center" />
</LinearLayout>


0 commentaires

5 Réponses :


3
votes

envisagez d'utiliser une napperonau au lieu d'une liste de réception. Ceci est conçu pour avoir des lignes et des colonnes. Voir Hello TableLayout .

Pour ajouter des lignes de manière programmative, vous pouvez gonfler le Tablerow et appeler addview sur Tablealayout.


0 commentaires

1
votes

incorporer les deux. Essayez d'utiliser Tablyayout au lieu de linearlayout pour l'enveloppe de la liste. Je pense que j'ai vu cela travailler quelque part une fois. Jamais essayé moi-même.

http: // www. vbsteven.be/blog/usant-the-simpleadapter-with-a-listview-in-android/


0 commentaires

2
votes

Vous pouvez faire l'une d'entre elles au lieu de envelopper_content sur TextViews:

android:layout_weight="2"


0 commentaires

7
votes

Vous pouvez utiliser layout_weight en conjonction avec layout_width de 0 comme celui-ci dans la présentation de votre élément XML: xxx

essentiellement la licyout_width de 0DP force toutes les vues de texte pour avoir aucune largeur. Étant donné que la largeur de rechange dans la disposition linéaire est dite en fonction de la mise en forme de layout_poids après la largeur des vues de texte, vous avez été déterminée, vous commencez par un champ de lecture même parmi les zones de texte qui ont tous la même largeur (0). Sans la largeur de 0, les zones de texte démarrent à différentes largeurs et ajoutant un espace supplémentaire (via layout_weight) laisse toujours la largeur de texte différente.


0 commentaires

1
votes

Si vous avez beaucoup de données à afficher, n'utilisez pas TableLayout. La performance et la consommation de mémoire sont horribles. Cela pourrait prendre plusieurs secondes pour que vos données soient affichées et que vous obtiendrez l'erreur de chorégraphe que votre application effectue trop de traitement dans le fil d'interface utilisateur


0 commentaires