2010-08-27 17 views
10

que desea colocar un TextView a la derecha de un diseño ya la izquierda de un diseño, pero siguen apilando sábana de uno al otro:¿Cómo colocar textview a la derecha e izquierda del diseño?

<LinearLayout 
     android:layout_width="0dip" 
     android:layout_weight="1" 
     android:layout_height="fill_parent" android:orientation="horizontal"> 
     <TextView 
      android:id="@+id/lefttext" 
      android:layout_width="fill_parent" 
      android:layout_height="0dip" 
      android:layout_weight="1" 
      android:text="Symbol"/> 
     <TextView 
      android:id="@+id/righttext" 
      android:layout_width="fill_parent" 
      android:layout_height="0dip" 
      android:layout_weight="1" 
      android:text="Price"/> 
    </LinearLayout> 

Respuesta

18

Prueba esto:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="horizontal" 
    > 
    <TextView 
     android:id="@+id/left_text" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:gravity="center" 
     android:text="Symbol" 
     /> 
    <TextView 
     android:id="@+id/right_text" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:gravity="center" 
     android:text="Price" 
     /> 
</LinearLayout> 

¿Por qué especificando 0dip para la altura en estos?

Para los símbolos en los lados:

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="horizontal" 
    > 
    <TextView 
     android:id="@+id/left_text" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:padding="5dip" 
     android:gravity="left" 
     android:text="Symbol" 
     /> 
    <TextView 
     android:id="@+id/right_text" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     android:padding="5dip" 
     android:gravity="right" 
     android:text="Price" 
     /> 
</LinearLayout> 

y hecho con un RelativeLayout:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    > 
    <TextView 
     android:id="@+id/left_text" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:padding="5dip" 
     android:layout_alignParentLeft="true" 
     android:text="Code" 
     /> 
    <TextView 
     android:id="@+id/right_text" 
     android:layout_width="fill_parent" 
     android:layout_height="wrap_content" 
     android:padding="5dip" 
     android:layout_toRightOf="@+id/left_text" 
     android:gravity="right"  
     android:text="Company Name" 
     /> 
</RelativeLayout> 
+0

alguna manera de hacer símbolo de estar en el extremo izquierdo y el precio sea en el extremo derecho? –

+0

Sí, simplemente ajuste la configuración de gravedad a lo que desee. He agregado un ejemplo arriba. (También agregué una pequeña cantidad de relleno, para que no se presionen contra los lados) – kcoppock

+0

El texto de la derecha no parece gravitar hacia la derecha, mira mi captura de pantalla: http://cl.ly/786ff7d72c99537d190b –

4

Uso android:layout_alignParentLeft="true" y android:layout_alignParentRight="true" a la vista en el interior RelaytiveLayout como esto

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    > 
    <TextView 
     android:id="@+id/left_text" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentLeft="true" 
     android:gravity="left|center_vertical" 
     android:text="Symbol" 
     /> 
    <TextView 
     android:id="@+id/right_text" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:layout_alignParentRight="true" 
     android:gravity="right|center_vertical" 
     android:text="Price" 
     /> 
</RelativeLayout> 

Alternativamente, puede utilizar TableLayout con stretchColumn configurado para estirar la segunda columna al tamaño del elemento primario.

2

Con LinearLayout, sólo hay que poner un TextView vacía con el peso entre ellos:

<LinearLayout 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal"> 
    <TextView 
     android:id="@+id/lefttext" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:text="Symbol"/> 
    <TextView 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="1" 
     /> 
    <TextView 
     android:id="@+id/righttext" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:text="Price"/> 
</LinearLayout> 
+1

Excepto que es mejor no poner un TextView sino una Vista: mykolaj

Cuestiones relacionadas