2012-04-27 15 views
15

Tengo un ImageView y un ImageButton. Los tengo uno al lado del otro en un diseño horizontal. Estoy tratando de hacerlo de manera que la imagen quede alineada a la izquierda en la pantalla y el botón esté alineado a la derecha. Intenté establecer la gravedad, pero no parece marcar la diferencia. ¿Dónde estoy equivocado?Android Layout alineación izquierda y derecha en el diseño horizontal

<LinearLayout 
    android:id="@+id/linearLayout1" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" 
    > 

    <ImageView 
     android:id="@+id/imageView1" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_gravity="left" 
     android:layout_weight="1" 
     android:gravity="left" 
     android:src="@drawable/short_logo" /> 

    <ImageButton 
     android:id="@+id/terminateSeed" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:gravity="right" 
     android:background="@null" 
     android:src="@drawable/unregister_icon" /> 
</LinearLayout> 

Respuesta

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

    <ImageView 
     android:id="@+id/imageView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentTop="true" 
     android:src="@drawable/ic_launcher" /> 

    <Button 
     android:id="@+id/button1" 
     style="?android:attr/buttonStyleSmall" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentRight="true" 
     android:layout_alignParentTop="true" 
     android:text="Button" /> 

</RelativeLayout> 
+0

uso disposición relativa que siempre funciona – MAC

+9

la cosa es que siempre debe tender a responder a la pregunta de la manera con la que se preguntado, podría haberse hecho fácilmente usando LinearLayout estableciendo la propiedad weightSum ... –

+1

sí, usted tiene razón @mirroredAbstraction pero trate de dar lo mejor. y LinearLayout no es muy útil para el desarrollo real y le sugiero que use uno relativo ... – MAC

0
<RelativeLayout 
android:id="@+id/linearLayout1" 
android:layout_width="match_parent" 
android:layout_height="wrap_content" 

> 

<ImageView 
    android:id="@+id/imageView1" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_gravity="left" 

    android:layout_alignParentLeft="true" 
    android:src="@drawable/short_logo" /> 

<ImageButton 
    android:id="@+id/terminateSeed" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentRight="true" 
    android:background="@null" 
    android:src="@drawable/unregister_icon" /> 
</RelativeLayout > 
10

uso ...

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="horizontal" 
    android:weightSum="1.0" > 

<ImageView 
    android:id="@+id/imageView1" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_gravity="left" 
    android:layout_marginRight="80dp" 
    android:layout_weight="0.5" 
    android:gravity="left" 
    android:src="@drawable/ic_launcher" /> 

<ImageButton 
    android:id="@+id/terminateSeed" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:layout_weight="0.5" 
    android:gravity="right" 
    android:layout_marginLeft="80dp" 
    android:background="@null" 
    android:src="@drawable/ic_launcher" /> 
</LinearLayout> 
+0

no funciono –

+0

@Agarwal, ¿por qué crees que lo hiciste? –

+2

funciona muy bien y además de esto ... esta debería ser la respuesta correcta ... porque la pregunta era ... cómo resolver el problema con un LinearLayout ... no ofrecer alternativas con RelativeLayout ... también sé con RelativeLayout ... pero lo necesito con LinearLayout ... Esta debe ser la respuesta correcta –

0

Hacer imageview y imagebuttonwrap_content y establecer layout_gravity a izquierda y derecha en consecuencia.

0

un RelativeLayout resolvería su problema con un chasquido, pero si todavía insiste en usar LinearLayout (sólo porque estamos tipo duro y hacer las cosas de la manera difícil), que hacerlo de esta manera:

Su padre LinearLayout es fill-parent, alineado a la izquierda y orientado horizontalmente, y contiene su ImageView y otro LinearLayout.

android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:orientation="horizontal" 
android:gravity="left" 

Segunda LinearLayout es rellenar los padres, alineado a la derecha, y orientado horizontalmente, y contiene su ImageButton.

android:layout_width="fill_parent" 
android:layout_height="wrap_content" 
android:orientation="horizontal" 
android:gravity="right" 
2

Usar este ejemplo, si desea utilizar LinearLayout sin dar Peso

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_gravity="left" 
     /> 

    <TextView 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:layout_gravity="center_vertical" 
     android:gravity="right" 
     /> 
    </LinearLayout> 
Cuestiones relacionadas