L'ajout de la marge du bas à la liste dernier élément

J'ai besoin d'ajouter pour ajouter ListView avec des éléments de contexte: différents pour les paires/impaires et à coins arrondis en haut et en bas. Il ressemble à ceci:

L'ajout de la marge du bas à la liste dernier élément

J'ai mis en œuvre de tous ces trucs par niveau-liste, mais il y a une chose que je veux faire.
Maintenant, le dernier élément est près du bas de l'écran. Il est préférable d'ajouter de l'espace.

L'ajout de la marge du bas à la liste dernier élément

Je ne veux pas ajouter de la marge du bas à la liste, j'ai besoin de marge seulement pour le dernier élément.

Les façons je vois pour ce faire:

Pied de page

Une sorte de hack – ajouter un pied de page avec vide TextView à la liste. Mais les pieds de page sont très instables, ils disparaissent généralement après notifyDataSetChanged et il n'y a aucun moyen de les récupérer

Image avec des pixels transparents

J'ai demandé au designer pour ajouter des pixels transparents à fond de fond de ressources. Malheureusement, dans ce cas verticale de centrage est complètement rompu.
Par exemple, il est 9patch comme ceci:

L'ajout de la marge du bas à la liste dernier élément

Et la mise en page comme ceci:

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
             android:layout_width="match_parent"
             android:layout_height="match_parent"
        >
    <!-- View with background with transparent pixels on bottom -->
    <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content"
                  android:id="@+id/item"
                  android:background="@drawable/some_bgr"
                  android:padding="10dp"
            >
        <TextView android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1"
                  android:text="Title"
                  android:layout_gravity="center"
                  android:textSize="18sp"
                />
        <TextView android:layout_width="wrap_content" android:layout_height="wrap_content"
                  android:text="Detail"
                  android:layout_gravity="center"
                  android:textSize="18sp"
                />
    </LinearLayout>

    <!-- Just for marking place took by view -->
    <FrameLayout android:layout_width="match_parent" android:layout_height="match_parent"
                 android:layout_below="@id/item"
                 android:background="#88ff55"
            />
</RelativeLayout>

Le résultat:

L'ajout de la marge du bas à la liste dernier élément

Comme vous le voyez, le centrage n'est pas de travail. Malheureusement.
(BTW, si spécifier ce 9patch comme arrière-plan pour TextView, le centrage de bonnes œuvres. Si vous connaissez n'importe quel article, en expliquant cela, s'il vous plaît laissez-moi savoir.)

Ajouter la marge du bas-dernier élément de l'implémentation de l'Adaptateur

Qui devrait fonctionner, mais pour une raison inconnue, je n'arrive pas à le faire fonctionner.
Je n'aime pas cette manière, parce que je n'aime pas à modifier les dimensions dans le code.

Donc

Il y a déjà imaginaire manière de construire XML dessinés avec, en particulier, en bitmap et de la marge. Selon un drawable concept, il devrait être possible, mais je ne trouve pas la mise en œuvre. Peut-être quelqu'un sait?

D'autres idées?

  • vous voulez juste ajouter une marge après le dernier élément?
  • Oui. La question sonne exactement comme ce
  • Veuillez vérifier ma réponse ci-dessous
  • En fait, je peux envisager d'utiliser le pied de page de l'approche. Je n'ai jamais vu disparaître par eux-mêmes, surtout pas après un appel à notifyDataSetChanged(). Vous avez peut-être fait quelque chose de mal, si c'est le cas. Un pied de page est gérée par le ListView et a peu à voir avec un adaptateur réelle du jeu de données.
  • La meilleure façon est de [stackoverflow.com/questions/6288167/... [1]: stackoverflow.com/questions/6288167/... il m'a vraiment aidé
  • Pouvez vous s'il vous plaît mettre à jour les accepté de répondre ici? Merci

InformationsquelleAutor darja | 2013-07-29