2010-09-27 41 views
8

He siguiente en XMLCómo colocar el diseño relativo en la parte inferior de la pantalla (o diseño lineal).

quiero poner el segundo trazado lineal en la parte inferior de la pantalla. ¿Cómo lo haré? He establecer la propiedad de la segunda disposición relativa a abajo, pero todavía no se muestra en la parte inferior ..

**

<?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> 

** Gracias de antemano

+0

quiero poner la segunda disposición relativa en la parte inferior de la pantalla – Sandy

Respuesta

11

el diseño que desee en la parte inferior debe tener:
android:gravity = "bottom"
y su padre debería tener:
android:layout_height="fill_parent"

+0

fijo el tanto por encima propiedad todavía diseño no es en el fondo de la pantalla – Sandy

+0

@Sandy ¿El diseño principal es el diseño 'raíz', es decir, llena por completo la pantalla? El diseño del elemento secundario también debe tener 'android: layout_height =" wrap_content "'. Publicar su código ayudaría :-) – fredley

+0

Yaa el diseño de los padres llena completamente la pantalla.Child have android: layout_height = "wrap_content" – Sandy

13

Estaba buscando esto un tiempo también. Mi solución justa encontrado es el uso de la propiedad:

android:layout_alignParentBottom="true" 

en lugar de su actual android:layout_gravity="bottom"

Esto, desafortunadamente, con mi diseño sólo funciona cuando se tiene un adicional de RelativeLayout como diseño raíz y el resto añadido a la misma. Quizás este no es siempre el caso, pero al tener un LinearLayout (incluso cuando se le dijo que usara fill_parent) solo usaba la altura de todos los elementos necesarios y ponía el pie de página en la parte inferior.

vine a esta solución, mirando a esta pregunta relacionada: How do I achieve the following result using RelativeLayout?

EDITAR aquí porque formato en el comentario respuesta se perdió: ¿Quiere decir que no se puede volver a escribir o que no funcionó ?

Tuve un LinearLayout vertical también y mi nueva estructura xml se ve (sin los parámetros de tamaño de diseño etc.) sth. de esta manera:

<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

Gracias por responder, pero no está funcionando con mi diseño. – Sandy

+0

¿Ya ha intentado reescribir su xml en la forma de mi ejemplo más reciente? Si no funciona, tal vez pueda dar más detalles sobre su diseño deseado. – 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

se debería poner una vista antes de su último diseño con peso de 1, y se puso a abajo. De esta manera:

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

¡esta debería ser la respuesta correcta! –

1

Trate de usar:

<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

Cuestiones relacionadas