如何将填充分配给Listview项目分隔线

在这里输入图像说明

我如何给填充列表项目,因为我在图像中显示。 我想在图像中显示布局中的分隔线。

这是我的列表片段代码

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" android:layout_marginLeft="25dp" android:layout_marginRight="25dp"> <ListView android:layout_height="wrap_content" android:layout_width="fill_parent" android:id="@+id/listV_main" android:layout_marginLeft="25dp" android:layout_marginRight="25dp"/> 

这是我的列表部分代码

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:orientation="vertical" android:paddingLeft="10dp" android:paddingTop="10dp" android:paddingRight="10dp" android:paddingBottom="10dp"> <include android:id="@+id/list_item_section_text" layout="@android:layout/preference_category" /> 

这是我的列表项目代码

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:minHeight="?android:attr/listPreferredItemHeight" android:adjustViewBounds="true" android:paddingRight="?android:attr/scrollbarSize" > <ImageView android:id="@+id/showlist_item_entry_drawable" android:layout_width="82dp" android:adjustViewBounds="true" android:layout_height="68dp" android:scaleType="fitXY" android:paddingLeft="9dp"/> <RelativeLayout android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="10dip" android:layout_marginRight="6dip" android:layout_marginTop="6dip" android:layout_marginBottom="6dip" android:layout_weight="1" > <TextView android:id="@+id/list_item_entry_title" android:layout_width="wrap_content" android:layout_height="wrap_content" android:singleLine="true" android:textAppearance="?android:attr/textAppearanceLarge" android:ellipsize="marquee" android:fadingEdge="horizontal" /> <TextView android:id="@+id/list_item_entry_summary" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_below="@id/list_item_entry_title" android:layout_alignLeft="@id/list_item_entry_title" android:textAppearance="?android:attr/textAppearanceSmall" android:singleLine="true" android:textColor="?android:attr/textColorSecondary" /> </RelativeLayout> 

使用“插入” …..

(list_divider.xml)

 <?xml version="1.0" encoding="UTF-8"?> <inset xmlns:android="http://schemas.android.com/apk/res/android" android:insetLeft="50dp" android:insetRight="50dp" > <shape> <solid android:color="@color/orange" /> <corners android:radius="2.0dip" /> </shape> </inset> 

并在你的列表视图添加像这样…

 <ListView android:dividerHeight="2dp" android:divider="@drawable/list_divider" ... /> 

您可以根据需要设置插入值…

UPDATE

正如@Giulio Piancastelli指出的,如果列表容器的背景与列表项的背景不同,那么你可以使用'层列表'

(list_divider.xml)

  <?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android" > <item> <shape android:shape="rectangle" > <solid android:color="@color/list_background" /> </shape> </item> <item android:left="10dp" android:right="10dp"> <shape android:shape="rectangle" > <solid android:color="@color/divider_color"/> </shape> </item> </layer-list> 

并在你的列表视图添加像这样…

 <ListView android:dividerHeight="2dp" android:divider="@drawable/list_divider" ... /> 

你需要填充分隔符? 创build您的自定义可绘制形状为:

 <?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android" > <item android:left="10dp" android:right="10dp"> <shape android:shape="rectangle" > <solid android:color="@android:color/black" /> </shape> </item> </layer-list> 

并设置为你的ListView的分隔符在XML中:

 <ListView android:dividerHeight="2dp" android:divider="@drawable/custom_divider" ... /> 

UPD

我只是在xml中有ListView

 <ListView xmlns:android="http://schemas.android.com/apk/res/android" android:id="@android:id/list" android:layout_width="match_parent" android:layout_height="match_parent" android:dividerHeight="2dp" android:divider="@drawable/line" /> 

line.xml as line.xml in drawable

 <?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android" > <item android:left="10dp" android:right="10dp"> <shape android:shape="rectangle" > <solid android:color="@android:color/black" /> </shape> </item> </layer-list> 

不要在代码中对ListView进行任何修改。 如果资源是错误的,你可以尝试使用Clean

正如@Giulio Piancastelli在@ASP答案中提到的那样,当列表容器的背景颜色与列表中的行不相同时, <inset>失败。 一个解决scheme是像下面这样使用<layer-list>

 //This item is to overlay the container colour with the row background colour <item android:left="0dp" android:right="0dp"> <shape android:shape="rectangle" > <solid android:color="@color/row_background" /> </shape> </item> //This item is the divider, put it at bottom so it will overlay the background colour <item android:left="92dp" android:right="0dp"> <shape android:shape="rectangle" > <solid android:color="@color/divider </shape> </item> 

那么你可以把它设置为分隔符,因为大多数答案build议:

 <ListView android:dividerHeight="2dp" android:divider="@drawable/layer_list" ... /> 

在你的listitem中给paddingtop作为主要布局

 <?xml version="1.0" encoding="utf-8"?> <LinearLayout android:padding="10dp" ....// Remaining fields > ... //Remaining items </LinearLayout> 

这应该是这个问题的替代解决scheme:

 <View android:layout_width="match_parent" android:layout_height="1dp" android:layout_alignParentBottom="true" android:background="color/secondary_text" android:layout_marginTop="16dp" /> 

设置你的清单项目分隔线的高度和颜色:

 <ListView android:layout_height="wrap_content" android:layout_width="fill_parent" android:id="@+id/listV_main" android:layout_marginLeft="25dp" android:layout_marginRight="25dp" android:divider="@android:color/darker_gray" android:dividerHeight="1dp"/>