Masquer la ligne de liste sans prendre l'espace

J'ai une ListView avec un associé ArrayAdapter qui affiche son contenu dans plusieurs activités. Malheureusement, il a obtenu nécessaires maintenant, que mon ListView dans l'un des paramètres ne s'affichent pas tous ses éléments, mais seulement ceux où la "propriété" n'est pas le cas. Je voudrais éviter d'utiliser deux ArrayAdapters avec un contenu différent, depuis lors, j'ai en quelque sorte besoin de les garder synchronisés. J'ai essayé comme ceci (cette méthode est maintenant juste suppose que getView est appelée dans le contexte où nous voulons cacher certains éléments):

public View getView(int position, View convertView, Context context) {
....

    if(!arrayitems[position].isProperty()) { //arrayitems is the underlying array
        convertView.setVisibility(View.VISIBLE); 
    } 
    else {
        convertView.setVisibility(View.GONE); 
    }
    return convertView;
}

Cela fonctionne, mais j'ai un blanc de ligne si l'élément a isProperty == true. Je voudrais faire la ligne invisible dans le sens, qu'elle ne prend pas plus d'espace. Est-ce possible?

Le fichier xml utilisé pour convertView ressemble à ceci:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" 
    android:paddingTop="5dp"
    android:paddingBottom="5dp"
    android:orientation="vertical">
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal" >

        <TextView
            android:id="@+id/text_item_time"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginRight="4dp"
            android:maxLines="1"
            android:ellipsize="none"
            android:textSize="12sp"
            android:textStyle="bold" />

        <TextView
            android:id="@+id/text_item_status"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="12sp"
            android:textStyle="bold" />

    </LinearLayout>

     <TextView android:id="@+id/text_item_text"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:textSize="12sp"
         android:maxLines="3"
         android:ellipsize="none" />

     <LinearLayout
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
         android:layout_marginTop="2dp"
         android:orientation="horizontal" >

         <TextView
             android:id="@+id/text_item_rating"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:layout_marginRight="4dp"
             android:textSize="10sp" />

         <TextView
             android:id="@+id/text_item_voted"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:textSize="10sp" />

     </LinearLayout>

</LinearLayout>

J'ai essayé de relire tous les android:layout_height="wrap_content" avec "fill_parent" mais ça ne changeait rien...

Merci!

Je n'ai pas l'obtenir, la propriété booléenne est le même pour tous les éléments que il est un attribut de l'adaptateur. Comment pourrait-il savoir ce que la ligne à cacher?
désolé, isProperty() est une méthode d'éléments dans le tableau
si encore problème, veuillez vérifier ma réponse, il va travailler pour vous.

OriginalL'auteur user1809923 | 2012-11-30