2011-09-16 6 views
1

J'ai ce ListView dont les articles que je voudrais cacher selon la sélection d'un groupe de radio. Actuellement je passe un booléen au ListAdapter dû au RadioGroup ayant seulement deux options. Mes articles contiennent une case à cocher et je veux montrer la liste entière ou seulement ceux avec les cases à cocher cochées. Je réussis à cacher les objets mais les diviseurs montrent encore, comment puis-je résoudre ce problème?Comment masquer dynamiquement les diviseurs listview?

Regardez comment il ressemble

http://www.mediafire.com/i/?wa2s0ngq027vjwr

http://www.mediafire.com/i/?9i6ggj2fdsns2da

(je suis nouveau, donc je ne peux pas télécharger les images ici)

xml pour ma ligne serait la suivante:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" android:layout_height="wrap_content" 
android:padding="1dip" android:gravity="center_vertical" 
android:background="#FFF"> 
<CheckBox android:id="@+id/dispositivo_tv" 
    android:layout_width="wrap_content" android:layout_height="wrap_content" 
    android:textColor="#000000" android:textSize="15dip" 
    android:layout_alignParentLeft="true" /> 
<LinearLayout android:id="@+id/botones" 
    android:layout_height="wrap_content" android:layout_width="wrap_content" 
    android:layout_alignParentRight="true" android:gravity="center_vertical"> 

    <ImageButton android:layout_width="wrap_content" 
     android:layout_height="wrap_content" android:id="@+id/button_foto" 
     android:src="@drawable/camera" android:background="#FFF" 
     android:paddingRight="15dip" android:visibility="invisible"></ImageButton> 
    <ImageButton android:layout_width="wrap_content" 
     android:layout_height="wrap_content" android:id="@+id/button_comentario" 
     android:src="@drawable/comment_add" android:background="#FFF" 
     android:paddingRight="15dip"></ImageButton> 

</LinearLayout> 
</RelativeLayout> 

et le bloc xml pour le ListView serait:

<LinearLayout android:layout_width="fill_parent" 
android:layout_height="fill_parent" android:orientation="horizontal" 
android:padding="5dip" android:background="@layout/list_box"> 
<ListView android:id="@android:id/list" android:layout_width="fill_parent" 
    android:layout_height="wrap_content" android:cacheColorHint="#00000000" 
    android:headerDividersEnabled="false" android:footerDividersEnabled="false 
    </ListView> 
</LinearLayout> 

et ce que j'utilise pour cacher la ligne lorsque la valeur booléenne je vous ai parlé est défini FAUX est:

wrapper.getDispositivo().setVisibility(View.GONE); 
wrapper.getFoto().setVisibility(View.GONE); 
wrapper.getComentario().setVisibility(View.GONE); 

PS: wrapper est l'instance de la classe où je tous les éléments de la ligne, soit la case à cocher (getDispositivo()), et un couple de boutons d'image (getFoto(), getComentario())

Merci à l'avance ...

+0

Nous ne pouvons pas lire vos pensées. Vous devriez écrire du code et plus de détails. –

+0

myListIvew.setDividerHeight (0); – superM

+0

Jetez un oeil à cette question http://stackoverflow.com/questions/2749551/how-to-change-the-divider-height-of-listview-dynamically – Martyn

Répondre

1

Comment l'utilisation personnalisée d des séparations dans votre disposition relative et setDivider (null); donc une fois que vous cachez la disposition, les diviseurs sont également cachés. Je voulais vraiment ajouter ceci comme commentaire. Mais il ne vient qu'après 50 répétitions, il fallait donc le mettre comme une réponse.

+0

je veux dire quelque chose comme un dans le

+1

En fait, je résous cela en utilisant des filtres Android, merci pour votre réponse de toute façon. – Bricktop

+2

Bricktop s'il vous plaît ajouter comme une réponse afin que quelqu'un le cherche sera aidé. –

Questions connexes