2011-10-29 47 views
11

relative layoutDiseño relativo. Entre 2 elementos

¿Cómo puedo colocar un artículo entre otros 2 artículos y alinearlo en el centro? (Por favor, vea el botón rojo en la imagen de arriba) - ¿Cómo puedo ubicarlo entre el "Botón central" y el "Botón inferior"?

Aquí es mi pariente código de diseño:

<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_height="fill_parent" 
    android:layout_width="fill_parent"> 

    <Button 
     android:id="@+id/button_center" 
     android:text="Center" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_centerVertical="true" 
     android:layout_centerInParent="true"/> 

    <!-- The new button should be between these 2 items --> 

    <Button 
     android:id="@+id/button_bottom" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Bottom" 
     android:layout_centerHorizontal="true" 
     android:layout_alignParentBottom="true"/> 

    <Button 
     android:id="@+id/button_top" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Top" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true"/> 

    <Button 
     android:id="@+id/button_left" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Left" 
     android:layout_alignParentLeft="true" 
     android:layout_centerVertical="true"/> 

    <Button 
     android:id="@+id/button_rignt" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Right" 
     android:layout_alignParentRight="true" 
     android:layout_centerVertical="true"/> 

    <Button 
     android:id="@+id/button_rel_right" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_toLeftOf="@id/button_right" 
     android:layout_alignTop="@id/button_rignt" 
     android:text="RelRight"/> 

    <Button 
     android:id="@+id/button_rel_left" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_toRightOf="@id/button_left" 
     android:layout_alignTop="@id/button_left" 
     android:text="RelLeft"/> 

</RelativeLayout> 
+1

publique el xml de su diseño. La solución depende de tu xml –

Respuesta

24

Deberá agregar otra disposición para que el botón quede exactamente en el medio. Por ejemplo, agréguelo a su diseño:

<FrameLayout 
    android:layout_width="wrap_content" 
    android:layout_height="fill_parent" 
    android:layout_above="@+id/button_bottom" 
    android:layout_alignLeft="@+id/button_center" 
    android:layout_alignRight="@+id/button_center" 
    android:layout_below="@id/button_center" > 
    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center" 
     android:text="new" /> 
</FrameLayout> 
-1

vine a esta solución:

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

    <!-- centered button --> 

    <LinearLayout 
     android:orientation="vertical" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true"> 

    <View 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_weight="1"/> 

    <FrameLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_weight="1"> 

     <Button android:text="CenteredButton" 
       android:id="@+id/centered_button"   
       android:layout_width="wrap_content" 
       android:layout_height="wrap_content" 
       android:layout_gravity="center"/> 

    </FrameLayout> 
    </LinearLayout> 

</RelativeLayout> 

sólo tiene que utilizar este código con LinearLayout en lugar del botón. Creo que no es el mejor, pero es lo suficientemente bueno.

Cuestiones relacionadas