web-dev-qa-db-fra.com

Les séparateurs supérieurs et inférieurs n'apparaissant pas dans la liste d'affichage Android

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.

18
InterRaptor

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.

28
k3v

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);
4
Mugur

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>
0
Eldhose M Babu

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:

Afficher le séparateur après le dernier élément de la liste

0
Archie.bpgc