Android RelativeLayout et la hauteur de wrap_content?

Je suis en train de faire une sélection ListActivity, similaire à celui utilisé pour ajouter des raccourcis à l'écran de lancement des écrans. J'ai roulé mon propre en-tête et pieds de page, que je voudrais être "collant" en haut et en bas de la vue lorsque sur l'écran. Pour ce faire, j'utilise un RelativeLayout avec l'en-tête set de dock haut de page, pied de page mis à quai à fond, et la liste ensemble pour aller en dessous de l'en-tête et au-dessus du pied de page. En termes de la disposition générale de l'activité, c'est le rendu que je m'attends. L'en-tête est collante vers le haut, le pied de page est collante vers le bas, et la liste défile entre eux.

Une chose étrange mais qui s'est passé lorsque je suis passé à la RelativeLayout que ma racine. Consultez la capture d'écran suivante:

Android RelativeLayout et la hauteur de wrap_content?

Je veux que mon Activité est à la hauteur de wrap_content, de sorte que la forme n'est aussi élevé que le contenu affiché en elle, mais une fois que je suis passé à RelativeLayout, il semble rendre l'Activité efficacement que fill_parent, en prenant tout l'écran, même si le contenu ne le justifie pas. Notez qu'il n'y a pas suffisamment d'éléments de la liste pour remplir l'écran, qui, avec les fill_parent le style, est en laissant une bande de l'espace entre la fin de la liste, et le pied de page. J'ai été ma hauteur par l'intermédiaire de styles - ce qui a bien fonctionné avec LinearLayout, mais semble être ignorés aujourd'hui. J'ai donc essayé de coder en dur la hauteur directement sur le RelativeLayout, mais cela ne fonctionne toujours pas et encore rendu sous la forme d' fill_parent.

Voici ma mise en page de code:

<?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
                    style="@style/GroupsList"  
                    android:layout_height="wrap_content">

        <FrameLayout android:layout_height="wrap_content" 
                     android:layout_width="fill_parent" 
                     android:id="@+id/hdrGroups" 
                     android:layout_alignParentTop="true">
            <include layout="@layout/title" 
                     android:layout_width="fill_parent" 
                     android:layout_height="wrap_content">
            </include>
        </FrameLayout>

        <FrameLayout style="@style/MyFooter" 
                     android:layout_height="wrap_content" 
                     android:layout_width="fill_parent" 
                     android:layout_alignParentBottom="true" 
                     android:id="@+id/ftrGroups">
            <ImageView style="@style/CloseButton" 
                       android:layout_height="wrap_content" 
                       android:layout_width="wrap_content" 
                       android:src="@drawable/add" 
                       android:id="@+id/imgGroupsAdd" 
                       android:clickable="true">
            </ImageView>
        </FrameLayout>

        <ListView android:divider="#9f9f9f" 
                  android:id="@+id/android:list" 
                  android:choiceMode="singleChoice" 
                  android:dividerHeight="1dp" 
                  android:layout_height="wrap_content" 
                  android:layout_width="fill_parent" 
                  android:layout_below="@id/hdrGroups" 
                  android:layout_above="@id/ftrGroups">
        </ListView>

        <TextView android:text="@string/browser_no_groups" 
                  style="@style/ListedItemB" 
                  android:id="@+id/android:empty" 
                  android:layout_height="wrap_content" 
                  android:layout_above="@id/ftrGroups" 
                  android:layout_below="@id/hdrGroups" 
                  android:layout_width="fill_parent">
        </TextView>
    </RelativeLayout>

Toute la présentation est faite via XML, ... je ne suis pas de faire toute la mise en page dans le code.
Comment puis-je obtenir le collant en-tête et pied de page, tout en ayant l'ensemble des activités se comporter dans un wrap_content mode pour sa hauteur? Est-il un autre moyen je devrais aller sur ce, au lieu d'un RelativeLayout?

Êtes-vous en mesure de poster un code plus complet exemple à reproduire la capture d'écran et le problème? Mon ami et j'ai une idée, mais nous sommes trop paresseux pour mettre ensemble les pièces manquantes vous n'avez pas fourni.
Je vais voir si je peux jeter quelque chose ensemble dans les prochains jours.
Eh bien, j'ai finalement eu la chance et a jeté un exemple... le trouver ici: dl.dropbox.com/u/19767586/layout.test.zip . J'ai aussi inclus deux screenies, on est à quoi il ressemble, on est à quoi il doit ressembler.

OriginalL'auteur eidylon | 2011-05-11