先上效果图
试了多种方案,记录一种方案最好的,
在每个item上设置背景,而这个背景是xml文件画出的,如下,store_list_bg.xml
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<!-- This is the line -->
<item
android:top="-2dp"
android:left="-2dp">
<shape>
<solid android:color="@android:color/transparent"/>
<stroke
android:width="1dp"
android:color="#B4B4B4"/>
</shape>
</item>
</layer-list>
其中,item标签中的,left,top,right,bottom,是设置描边位置的,如果设为负值则为 不显示
然后在item布局上设置background属性就好啦
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:background="@drawable/store_list_bg"
android:layout_height="match_parent">
<LinearLayout
android:layout_centerInParent="true"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:paddingTop="5dp"
android:layout_marginBottom="14dp"
android:gravity="center"
android:orientation="vertical">
<ImageView
android:scaleType="fitXY"
android:id="@+id/imageView"
android:layout_width="43dp"
android:layout_height="43dp" />
<TextView
android:maxLines="1"
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="6dp"
android:textColor="@color/txt_title_detail"
android:textSize="@dimen/text_font_12"
tools:text="头头" />
<TextView
android:visibility="gone"
android:id="@+id/tv_yw"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="2dp"
android:textColor="@color/txt_title_detail"
android:textSize="@dimen/text_font_10"
tools:text="ALL" />
</LinearLayout>
</RelativeLayout>
有的小伙伴要问了,那为什么第二行没有横向下滑线,其实很简单,再看下上面标红的这一行android:layout_marginBottom="14dp"
没错,我是通过在子view中加了间距,把本该显示的横线挤出了显示区域,当然你可以在Adapter中根据item的位置来动态的改变横线是否要显示