Cómo asignar el relleno a la línea de divisor de elementos Listview
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.
- Establecer barra de progreso en la parte superior de RecylerView y eliminar después de cargar los datos
- Android BLE: ¿Identificar el tipo de característica?
- Cómo agregar relleno alrededor de un WebView
- ¿Cómo puedo saber el relleno de los padres desde la vista personalizada?
- Cómo corregir la posición de una vista dentro de un ViewPager y CoordinatorLayout
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>
- Imitar menú ActionBar con ImageButton
- Diferencia entre android: layout_alignParentTop y android: layout_alignParentStart
- Las superposiciones de fragmentos de Android
- ¿Cuál es la forma correcta de admitir diferentes tamaños de tabletas?
- ¿Cómo hacer que AdView "ocupe" el espacio incluso cuando solicita un anuncio? (Androide)
- Diferentes dimensiones para diferentes idiomas
- Android: programación de diseños de XML
- ¿Cómo acceder a recurso con nombre dinámico en mi caso?
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"/>
- Fragmento de intercambio en una actividad a través de animación
- ¿Qué optimizaciones puedo esperar de Dalvik y la cadena de herramientas de Android?