开发者

How to hide listview dividers dynamically?

开发者 https://www.devze.com 2023-04-05 03:47 出处:网络
I have this ListView whose items i\'d like to hide depending on the selection of a RadioGroup. Currently I\'m passing a boolean to the ListAdapter due to the RadioGroup having only two options. My ite

I have this ListView whose items i'd like to hide depending on the selection of a RadioGroup. Currently I'm passing a boolean to the ListAdapter due to the RadioGroup having only two options. My items contain a checkbox and i want to either show the entire list or just the ones with the check boxes checked. I'm succeeding at hiding the items but the dividers still show, how can i fix this?

Look how it looks like

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

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

(I'm new, so i can't upload images here)

The xml for my row would be:

<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=开发者_JAVA技巧"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>

and the xml block for the ListView would be:

<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>

and what i use to hide the row when the boolean i told you about is set FALSE is:

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

PS: wrapper is the instance of the class where i have all the elements of the row, i.e. the checkbox (getDispositivo()), and a couple of image buttons (getFoto(), getComentario())

Thanks in advance...


How about using custom dividers in your relative layout and setDivider(null); so once you hide the layout the dividers are hidden as well. I wanted to actually add this as a comment. But it comes only after 50 reps so had to put it as a answer.

0

精彩评论

暂无评论...
验证码 换一张
取 消