2011-04-11 17 views
13

Soy bastante nuevo en Android y trato de hacer una aplicación de muestra donde 3 elementos (2 botones y 1 vista de texto) se colocan horizontalmente. Necesito que el texto esté en el centro con dos botones alineados a la izquierda y derecha de la vista.Android izquierda, centro y alineación derecha

E.g.

|<Button> <Text>  <Button>| 

Apreciar si me pueden ayudar con esto.

Gracias de antemano

+0

Si nos muestra el código que tiene hasta ahora, será más fácil ayudarle. – Phonon

Respuesta

20

EDIT: yo creo que esto va a resolver su problema. Vea el código a continuación. ¡Déjeme saber si esto ayuda! Sé que esto me ha ayudado y lo usaré. ¡Acepta esto como la respuesta si funcionó! =)

<?xml version="1.0" encoding="utf-8"?> 
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:stretchColumns="1"> 
    <TableRow> 
     <Button 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="button1" 
      android:id="@+id/button1button"></Button> 
     <EditText 
      android:layout_height="wrap_content" 
      android:id="@+id/firstedittext" 
      android:layout_width="wrap_content"></EditText> 
     <Button 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="button2" 
      android:id="@+id/button2button"></Button> 
    </TableRow> 
</TableLayout> 

EDIT: Añadido disposición relativa a ver si funciona para usted, que me haga saber si funciona. Tendrá que ajustar el "10px" para obtener la distancia deseada. Estoy viendo si hay una mejor manera de hacerlo, donde la distancia es más dinámica.

Puede hacer que los botones "alignParentLeft" y "alignParentRight" se alineen con el lado derecho e izquierdo de la pantalla. Sin embargo, todavía tengo problemas para obtener el texto entre las dos vistas.

Puede hacer esto en su archivo xml para el diseño. Realice una distribución horozontal y añada primero el primer botón, luego la vista de texto y luego el segundo botón. Publicaremos xml brevemente para un ejemplo.

<RelativeLayout 
     android:id="@+id/LinearLayout01" 
     android:orientation="horizontal" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content"> 
     <Button 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:text="button1" 
      android:layout_alignParentLeft="true" 
      android:layout_marginRight="10px" 
      android:id="@+id/button1button"></Button> 
     <EditText 
      android:layout_height="wrap_content" 
      android:id="@+id/firstedittext" 
      android:layout_toRightOf="@id/button1button" 
      android:layout_marginRight="10px" 
      android:layout_width="wrap_content"></EditText> 
     <Button 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_toRightOf="@id/firstedittext" 
      android:text="button2" 
      android:id="@+id/button2button"></Button> 
    </RelativeLayout> 
+0

Gracias por la respuesta. Lo intenté de esa manera. Pero no se alinean correctamente. (Los dos botones deben estar alineados a la izquierda y los derechos a los lados de la pantalla.) Y he establecido el ancho para llenar-principal. – budsiya

+0

Veo ahora, modifiqué tu publicación para que la imagen se muestre mucho mejor. Está en espera de revisión. Cuando se revise, debería verlo aparecer en su publicación ahora. Nunca tuve la suerte de alinear los elementos de la vista como dices. Sin embargo, cuando tenga la oportunidad, examinaré esto y veré si puedo hacerlo funcionar, porque también estoy buscando una respuesta simple a esa pregunta. – prolink007

+0

Muchas gracias por su apoyo. Realmente lo aprecio Intentaré ambos métodos una vez que llegue a casa esta noche. Te dejaré saber el resultado. Tx! – budsiya

19

esto va a hacer el truco. Lo que necesitas es gravedad absoluta. Este debería funcionar con todos los tamaños de pantalla de Android también. No creo que necesite usar ningún margen o margen, lo arruinarán una vez que tenga contenido en sus hijos (los márgenes son relativos en términos de elección, también conocido como: quiere un margen más pequeño cuando tiene menos texto). ..which sucede a menudo durante la traducción, nuevas funciones, sustituciones, etc ..)

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:orientation="horizontal" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content"> 
    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="button1" 
     android:layout_alignParentLeft="true"/> 
    <EditText 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/firstedittext" 
     android:layout_centerInParent="true"/> 
    <Button 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="button2" 
     android:layout_alignParentRight="true"/> 
</RelativeLayout> 
+0

Gracias Edison ... Lo intentaré esta noche y te haré saber el resultado. Aprecio tu ayuda. :) – budsiya

+0

Estaba buscando por todos lados ese "layout_centerInParent" y no pude encontrarlo. Asumí que seguiría el mismo nombre que los otros "layout_alignParentLeft" y "layout_alignParentRight".Entonces, estaba buscando "layout_alignParentCenter", lol. – prolink007

+0

@ prolink007 ¿Está utilizando el último SDK? No estoy seguro de qué SDK le dio layout_x, pero si simplemente escribe android: y espere y escriba "l", Eclipse debería filtrarlo por usted ... Normalmente solo escribo "l" en lugar de tratar de recordar el Todo porque ... mi memoria apesta T_T. – Edison

0

Este es mi código en LinearLayout. Espero que te ayude!

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

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

     <Button 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="start" 
      android:text="Button1" /> 
    </LinearLayout> 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_weight="1" 
     android:orientation="vertical" > 

     <EditText 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="center" 
      android:ems="10" 
      android:text="Chao cac ban" > 

      <requestFocus /> 
     </EditText> 
    </LinearLayout> 

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

     <Button 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:layout_gravity="end" 
      android:text="Button2" /> 
    </LinearLayout> 

</LinearLayout> 
Cuestiones relacionadas