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.
Creo que tienes que establecer el pie de página usando una vista debajo de la vista de lista. Tuve el mismo problema y esto es lo que podría obtener como una solución:
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);