web-dev-qa-db-fra.com

Comment créer un pied de page fixe dans la disposition Android?

J'utilise le code suivant pour afficher le bouton en bas de l'activité.

<RelativeLayout 
        Android:layout_width="wrap_content" 
        Android:layout_height="wrap_content" 
        Android:layout_alignParentBottom="true" 
        Android:layout_centerHorizontal="true" 
         >
    <Button Android:id="@+id/btnGetMoreResults"
    Android:layout_height="wrap_content" 
    Android:layout_width="wrap_content" 

         Android:text="Get more"
       />
       </RelativeLayout> 

et listview au-dessus. lorsque j'affiche plus de données dans la liste, ce panneau de boutons est déplacé vers le bas.

toute aide serait appréciée.

32
UMAR

Le Android:layout_alignParentBottom l'attribut doit être déclaré dans un élément du RelativeLayout et non dans le RelativeLayout lui-même (sauf s'il existe un autre RelativeLayout en tant que parent).

Vous devriez faire quelque chose comme ça, avec le ListView à l'intérieur du RelativeLayout aussi:

<RelativeLayout 
 Android:layout_width="wrap_content" 
 Android:layout_height="wrap_content"         
 Android:layout_centerHorizontal="true">
  <ListView ...>
  <Button Android:id="@+id/btnGetMoreResults"
   Android:layout_height="wrap_content" 
   Android:layout_width="wrap_content"     
   Android:text="Get more"
   Android:layout_alignParentBottom="true" />
</RelativeLayout> 
24
tbruyelle

La réponse sélectionnée comme correcte est erronée, le bouton masquera la partie inférieure de la liste. La bonne façon consiste à déclarer le bouton en premier et à placer la liste au-dessus du bouton.

<Button Android:id="@+id/btnGetMoreResults"
   Android:layout_height="wrap_content" 
   Android:layout_width="wrap_content"     
   Android:text="Get more"
   Android:layout_alignParentBottom="true"/>

<ListView 
   ...
   Android:layout_above="@id/btnGetMoreResults"/>
100
Animesh

Si vous aviez, par exemple, tous les éléments déroulants dans un ScrollView, vous devriez faire comme suit:

<RelativeLayout
        xmlns:Android="http://schemas.Android.com/apk/res/Android"
    xmlns:tools="http://schemas.Android.com/tools"
        Android:layout_width="match_parent"
    Android:layout_height="match_parent"
        style="@style/rootElement"
    >

    <ScrollView
        Android:layout_width="match_parent"
        Android:layout_height="match_parent"
        >

            <!-- texts, buttons, images and anything that you want to scroll -->

        </ScrollView>

    <LinearLayout 
        Android:orientation="vertical" 
        style="@style/footer"
        Android:id="@+id/footer"            
            Android:layout_alignParentBottom="true"
        >

    </LinearLayout>

</RelativeLayout>

Notez que si vous souhaitez que le pied de page soit corrigé, vous ne devez pas le placer dans ScrollView, où le contenu déroulant sera placé. Faites-le enfant de RelativeLayout et définissez layout_alignParentBottom à vrai. Vous devrez peut-être ajouter un remplissage au bas de ScrollView dans ce cas (afin que le dernier élément ne soit pas masqué par le pied de page).

L'idée est similaire pour les éléments autres que ScrollView

8
Victor Ferreira