【我的Android进阶之旅】如何去除ListView中Header View、Footer View中的分割线

最近的项目中给ListView 加入了一个Header View之后,发现Header View的下方也有了分割线,很难看,UI要求将Header View的分割器去掉,好吧。现在就来说一说如何如何去除ListView中Header View中的分割线。

Header View中带分割线
【我的Android进阶之旅】如何去除ListView中Header View、Footer View中的分割线_第1张图片

Header View中不带分割线
【我的Android进阶之旅】如何去除ListView中Header View、Footer View中的分割线_第2张图片

Header View中要去掉的分割线
【我的Android进阶之旅】如何去除ListView中Header View、Footer View中的分割线_第3张图片

方法1

ListView的部分布局代码如下所示

<ListView  android:id="@+id/ll_channel_list_view" android:layout_width="match_parent" android:layout_height="match_parent" android:divider="@color/color_list_divider" android:dividerHeight="1px" />

先调用ListView的addHeaderView(View v, Object data, boolean isSelectable)方法添加Header View,注意第三个参数 isSelectable 必须为true,否则无效

然后调用ListView的setHeaderDividersEnabled(boolean headerDividersEnabled)方法设置Header View不显示分割线,代码如下所示:

    listView.addHeaderView(mHeader, null, true);
    //禁止头部出现分割线
    listView.setHeaderDividersEnabled(false);

顺便说一下:如果要去除ListView中Footer View中的分割线,也是类似的方法

先调用ListView的addFooterView(View v, Object data, boolean isSelectable)方法添加Footer View,注意第三个参数 isSelectable 必须为true,否则无效

然后调用ListView的setFooterDividersEnabled(boolean footerDividersEnabled)方法设置Footer View不显示分割线,代码如下所示:

 listView.addFooterView(mFooter, null, true);
 //禁止底部出现分割线 
 listView.setFooterDividersEnabled(false);

方法2

在ListView的布局文件中不设置分割线,如下所示:

<ListView  android:id="@+id/ll_channel_list_view" android:layout_width="match_parent" android:layout_height="match_parent" android:divider="@null" />

然后在item布局文件中加入一个view作为分割线,代码类似于如下所示:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical">

    <RelativeLayout  android:id="@+id/rl_item_program" android:layout_width="match_parent" android:layout_height="116dp" android:background="@drawable/bg_item_program_selector" android:orientation="horizontal">

        <ImageView  android:id="@+id/iv_program_play_ico" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_centerVertical="true" android:layout_marginLeft="10dp" android:gravity="center" android:src="@drawable/playing_anim" />

        <TextView  android:id="@+id/tv_program_name" android:layout_width="wrap_content" android:layout_height="116dp" android:layout_centerVertical="true" android:layout_toRightOf="@id/iv_program_play_ico" android:ellipsize="end" android:gravity="center_vertical" android:lineSpacingExtra="12dp" android:maxLines="2" android:paddingLeft="10dp" android:paddingRight="10dp" android:text="abcdefghijklmnabcdefghijklmnabcdefghijklmn" android:textColor="@color/white" android:textSize="32dp"/>
    </RelativeLayout>

    <!--添加分割线-->
    <View  android:layout_width="fill_parent" android:layout_height="1px" android:layout_below="@id/rl_item_program" android:background="@color/color_list_divider"/>
</RelativeLayout>

这样ListView就不会有分割线了,只是在内容区域有分割线,Header View和Footer View就不会再出现分割线。

作者:欧阳鹏 欢迎转载,与人分享是进步的源泉!
转载请保留原文地址:http://blog.csdn.net/ouyang_peng/article/details/52749732

这里写图片描述

你可能感兴趣的:(【我的Android进阶之旅】如何去除ListView中Header View、Footer View中的分割线)