Si je comprends bien, le séparateur défini pour une liste doit également apparaître en haut et en bas de la liste, c'est-à-dire au-dessus du premier élément et sous le dernier.
Pour une raison quelconque, ils n'apparaissent pas dans ma listview:
<?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>
Définir Android: footerDividersEnabled sur true (qui est la réponse donnée dans d'autres questions sur ce sujet) ne change rien. De plus, je n'ai aucun élément désactivé, à moins qu'un pied de page par défaut ne soit désactivé.
Des idées?
Modifier: il semble que le séparateur situé au haut et au bas de l’appareil apparaisse pendant une fraction de seconde lorsque je passe au-delà du premier/dernier élément, puis disparaît. Il semble que l'interface allait continuer, seulement plus tard pour se rendre compte que c'était le dernier élément, puis désactiver le diviseur.
J'ai résolu ce problème en utilisant l'aide du lien suivant: Le séparateur disparaît du dernier élément de listview si la vue des pieds est ajoutée
Ce que j'ai fait était d'ajouter le
Android:footerDividersEnabled="true"
attribut à ListView en XML. Puis, par programme, j’ai ajouté une vue de pied de page vide sélectionnable à l’aide de
listView.addFooterView(new View(context), null, true);
Je n'ai pas essayé l'en-tête, mais je m'attends à ce qu'il fonctionne de la même manière.
J'ai eu le même problème. Voici comment je l'ai résolu:
<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>
Ensuite, dans la méthode onCreate (), j'ai:
View v = new View(this);
v.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, 1));
mList.addFooterView(v);
Veuillez trouver le code modifié ci-dessous:
<?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>
Je pense que vous devez définir le pied de page en utilisant une vue en dessous de la liste. J'ai eu le même problème et voici ce que je pourrais obtenir comme solution: