studio recyclerview item example divideritemdecoration android listview divider

recyclerview - Los divisores superior e inferior no se muestran en la vista de lista de Android



listview item android (5)

De la forma en que lo entiendo, el divisor definido para una vista de lista también debe aparecer en la parte superior e inferior de la lista, es decir, encima del primer elemento y debajo del último elemento.

Por alguna razón no aparecen en mi vista de lista:

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/mainLayout" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@drawable/background"> <ImageView android:id="@+id/home" android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingLeft="3dp" android:paddingTop="3dp" android:paddingBottom="3dp" android:src="@drawable/homeicon"/> <TextView android:id="@+id/titleBar" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Page Title" android:layout_marginLeft="10dp" android:paddingTop="3dp" android:textSize="18sp" android:textStyle="bold" android:typeface="serif" android:textColor="#FFFFFF" android:layout_centerHorizontal="true"/> <ImageView android:id="@+id/back" android:layout_width="wrap_content" android:layout_height="wrap_content" android:paddingRight="8dp" android:paddingTop="8dp" android:src="@drawable/backicon" android:layout_alignParentRight="true"/> <ImageView android:id="@+id/separator1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_below="@+id/home" android:scaleType="fitXY" android:src="@drawable/separatorimg" /> <ListView android:id="@android:id/android:list" android:layout_below="@+id/separator1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:cacheColorHint="#00000000" android:divider="@drawable/separatorimg"> </ListView> </RelativeLayout>

La configuración de android: footerDividersEnabled to true (que es la respuesta dada en otras preguntas sobre este tema) no cambia nada. Además, no tengo elementos deshabilitados, a menos que haya un pie de página predeterminado que esté deshabilitado.

¿Algunas ideas?

Edición: Parece que el divisor en la parte superior e inferior aparecen durante una fracción de segundo cuando me desplazo más allá del primer / último elemento y luego desaparece. Parece que la interfaz continuaría, solo más tarde para darse cuenta de que era el último elemento y luego deshabilitar el divisor.



Por favor encuentre el código modificado a continuación:

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/mainLayout" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@drawable/background" > <LinearLayout android:id="@+id/llAppBar" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentTop="true" android:orientation="horizontal" android:weightSum="10" > <ImageView android:id="@+id/home" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="2" android:paddingBottom="3dp" android:paddingLeft="3dp" android:paddingTop="3dp" android:scaleType="fitXY" android:src="@drawable/homeicon" /> <TextView android:id="@+id/titleBar" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginLeft="10dp" android:layout_weight="6" android:paddingTop="3dp" android:text="Page Title" android:textColor="#FFFFFF" android:textSize="18sp" android:textStyle="bold" android:typeface="serif" /> <ImageView android:id="@+id/back" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_weight="2" android:paddingRight="8dp" android:paddingTop="8dp" android:scaleType="fitXY" android:src="@drawable/backicon" /> </LinearLayout> <ImageView android:id="@+id/separator1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_below="@id/llAppBar" android:scaleType="fitXY" android:src="@drawable/separatorimg" /> <ListView android:id="@android:id/android:list" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_below="@id/separator1" android:cacheColorHint="#00000000" android:divider="@drawable/separatorimg" > </ListView> </RelativeLayout>


Resolví este problema usando la ayuda del siguiente enlace: El divisor desaparece del último elemento en la vista de lista si se agrega footerview

Lo que hice fue agregar el

android:footerDividersEnabled="true"

atribuir a la ListView en XML. Luego programáticamente, agregué una vista de pie de página vacía que era seleccionable usando

listView.addFooterView(new View(context), null, true);

No probé el encabezado, pero espero que funcione de la misma manera.


Tuve el mismo problema, y ​​la configuración del relleno y el color de fondo lo resolvieron.

<ListView android:id="@+id/list" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@color/gray_background" android:paddingTop="1dp" android:paddingBottom="1dp" />

Aquí, el color de fondo debe ser el mismo que el del divisor con la vista de lista.


Yo tuve el mismo problema. Así es como lo resolví:

<ListView android:id="@+id/my_list" android:layout_width="match_parent" android:layout_height="wrap_content" android:divider="@color/transparent" android:dividerHeight="@dimen/padding_default" android:footerDividersEnabled="false" android:headerDividersEnabled="false" > </ListView>

Luego, en el método onCreate (), tengo:

View v = new View(this); v.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, 1)); mList.addFooterView(v);