Cómo asignar el relleno a la línea de divisor de elementos Listview

Introduzca aquí la descripción de la imagen

Cómo puedo dar el relleno al artículo de la lista como demuestro en imagen. Quiero hacer el divisor en el diseño como se muestra en la imagen.

Este es mi código de fragmento de lista

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

Este es mi código de sección de lista

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

Este es mi código de elemento de lista

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

Usa 'inserción' .

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

Y en su vista de lista agregue como esto …

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

Puede establecer el valor de inserción como desee …

ACTUALIZAR

Como se ha señalado por @Giulio Piancastelli, Si el fondo del contenedor de la lista es diferente del fondo del elemento de la lista, entonces puede usar 'layer-list'

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

Y en su vista de lista agregue como esto …

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

¿Necesita relleno para divisores? Crea tu forma personalizada como:

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

Y establecer como divisor para su ListView en xml:

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

UPD

Acabo de tener ListView en xml:

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

Divider como line.xml en line.xml :

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

No haga ninguna modificación en el ListView en código. Puedes intentar usar Clean si los recursos están mal construidos.

Como @Giulio Piancastelli mencionado en @ASP respuesta, el <inset> falla cuando el color de fondo del contenedor de lista no es el mismo que las filas dentro de la lista. Una solución es usar <layer-list> como a continuación:

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

Entonces usted puede fijarlo como divisor como la mayoría de las respuestas sugieren:

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

En su listitem dar el paddingtop a la disposición principal como

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

Esto debe ser solución alternativa para esta pregunta:

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

Establezca la altura y el color del divisor del elemento de lista:

 <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"/> 
  • HorizontalScrollView dentro de ListView: desplazamiento vertical menor para desplazamiento horizontal
  • Android: Elementos secundarios que comparten estado presionado con sus padres incluso cuando se especifica duplicateParentState
  • TextView Top Padding problema?
  • ListView.addFooterView (v) no se muestra
  • Prioridad de diseño de Android
  • Android: diseño relativo dos botones ocupan todo el espacio horizontal disponible
  • Cómo agregar mediante programación ImageView en LinearLayout sin espacios adicionales?
  • Trabajar con modo retrato y paisaje de forma programática en android
  • Android TextView no se puede seleccionar en CoordinatorLayout? (TextView no admite la selección de texto.
  • ¿Cómo mostrar 2 vistas, con un gradiente de desvanecimiento efecto en Android?
  • Error al convertir @ drawable / en un drawable
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.