2010-09-27 8 views
8

je suit dans xmlComment placer la mise en page relative au bas de l'écran (ou mise en page linéaire).?

Je veux mettre la deuxième disposition linéaire en bas de l'écran. Comment vais-je faire? J'ai mis la propriété de deuxième disposition par rapport au fond mais ne pas montrer au fond ..

**

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_height="fill_parent" 
    android:layout_width="fill_parent">  
<RelativeLayout android:id="@+id/RelativeLayout01" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"> 
</RelativeLayout> 
<RelativeLayout android:id="@+id/RelativeLayout02" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"> 
</RelativeLayout> 
<RelativeLayout android:layout_height="wrap_content" 
    android:layout_width="fill_parent" 
    android:layout_gravity="bottom"> 
</RelativeLayout> 
</LinearLayout> 

** Merci à l'avance

+0

Je veux mettre la deuxième disposition relative au bas de l'écran – Sandy

Répondre

11

La mise en page que vous voulez en bas devrait avoir:
android:gravity = "bottom"
et son parent doit avoir:
android:layout_height="fill_parent"

+0

je mis encore la mise en page la propriété au-dessus ne sont pas en bas de l'écran – Sandy

+0

@Sandy Le parent met-il en forme la disposition «root», c'est-à-dire qu'il remplit complètement l'écran? La mise en page enfant devrait également avoir 'android: layout_height =" wrap_content "'. Affichage de votre code aiderait :-) – fredley

+0

Yaa parent mise en page complètement remplir l'écran.Child android: layout_height = "wrap_content" – Sandy

13

Je cherchais ça aussi. Ma solution vient de trouver est d'utiliser la propriété:

android:layout_alignParentBottom="true" 

au lieu de votre existant android:layout_gravity="bottom"

Ce malheureusement avec ma mise en page ne fonctionne que lorsque ayant une RelativeLayout supplémentaire mise en page de racine et le reste ajouté. Peut-être que ce n'est pas toujours le cas, mais avec un LinearLayout (même quand on lui dit d'utiliser fill_parent) il utilisait seulement la hauteur de tous les éléments ajoutés nécessaires et mettait mon pied de page au bas de ceux-ci.

Je suis venu à cette solution, examiner cette question connexe: How do I achieve the following result using RelativeLayout?

EDIT ici parce que le format dans le commentaire de réponse est perdu: Voulez-vous dire que vous ne pouvez pas récrire ou qu'il n'a pas fonctionné ?

J'avais aussi une LinearLayout verticale et ma nouvelle structure xml ressemble (sans les paramètres de taille de mise en page etc.) sth. comme ceci:

<RelativeLayout> 
    <RelativeLayout 
     android:id="@+id/RelativeLayout01"> 
    </RelativeLayout> 
    <RelativeLayout 
     android:id="@+id/RelativeLayout02" 
     android:layout_below="@+id/RelativeLayout01"> 
    </RelativeLayout> 
    <RelativeLayout 
     android:layout_below="@+id/RelativeLayout02" 
     android:layout_alignParentBottom="true"> 
    </RelativeLayout> 
</RelativeLayout> 
+0

Merci pour la réponse, mais ce ne fonctionne pas avec ma mise en page. – Sandy

+0

Avez-vous déjà essayé de réécrire votre XML à la manière de mon exemple le plus récent? Si cela ne fonctionne pas, vous pouvez peut-être donner plus de détails sur votre mise en page souhaitée. – sunadorer

0
<Linearlayout android:layout_height="fill_parent" 
android:orinationtation="vertical" 
android:layout_width="fill_parent"> 

<RelativeLayout android:layout_height="0dp" 
android:layout_width="fill_parent" 
android:weight="1"> 
</RelativeLayout> 

<RelativeLayout 
android:layout_height="0dp" 
android:layout_width="fill_parent" 
android:weight="1" 
> 
</RelativeLayout> 



</Linearlayout > 
1

Vous devriez mettre un Voir avant votre dernière mise en page avec le poids 1, et il va le mettre en bas. Comme ceci:

<View android:id="@+id/emptySpace" 
    android:layout_width="fill_parent" 
    android:layout_height="0dp" 
    android:layout_weight="1" 
    /> 
+0

cela devrait être la bonne réponse! –

1

Essayez d'utiliser:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="vertical" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:background="#ffb3e5fc" 
    android:id="@+id/linearLayout1"> 
<RelativeLayout 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:gravity="bottom"> 
<Button 
    android:id="@+id/button1" 
    android:text="Left" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_toLeftOf="@+id/centerPoint" /> 
<TextView 
    android:id="@+id/centerPoint" 
    android:text="" 
    android:layout_width="1dip" 
    android:layout_height="wrap_content" 
    android:layout_centerHorizontal="true" /> 
<Button 
    android:id="@+id/button2" 
    android:text="Right" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentRight="true" 
    android:layout_toRightOf="@+id/centerPoint" /> 
</RelativeLayout> 
</LinearLayout> 

It produces something that looks like this

Questions connexes