5

Tengo una versión relativa, y en ella dos textviews. Textview 1 se alinea arriba y se deja con parent. Textview 2 se alinea a la derecha de textview 1, y a la derecha con parent. Esto crea un problema si el texto en 1 es demasiado largo, lo que significa que 1 sacará 2 de la pantalla en el peor de los casos.TextView y Ellipsize cuando lo aprieto con otra TextView

¿Cómo hago para que estos dos "sacrifiquen" el texto nr 1 en lugar de 2? el ancho mínimo no parece funcionar. Mi objetivo final es elipsis de texto 1, pero parece depender de que la vista de texto tenga el tamaño correcto en primer lugar.

Aquí es el xml

<?xml version="1.0" encoding="utf-8"?> 

<RelativeLayout android:id="@+id/RelativeLayout01" 
       android:layout_width="fill_parent" 
       android:layout_height="fill_parent" 
       xmlns:android="http://schemas.android.com/apk/res/android"> 
<TextView android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:id="@+id/TextView02" 
      android:layout_alignParentRight="true" 
      android:layout_toRightOf="@+id/TextView01" 
      android:text="I am number 2" 
      android:gravity="right" 
      android:lines="1" 
      android:minWidth="32sp"> 
</TextView> 
<TextView android:layout_height="wrap_content" 
      android:layout_alignParentTop="true" 
      android:id="@+id/TextView01" 
      android:layout_alignParentLeft="true" 
      android:textSize="22sp" 
      android:layout_width="wrap_content" 
      android:lines="1" 
      android:text="sd sd asd sad asd asd saasd a"> 
</TextView> 

</RelativeLayout> 
+3

En realidad, esto se responde perfectamente con esta pregunta: http://stackoverflow.com/questions/3785221/two-textviews-side-by-side-only-one-to-ellipsize – sandos

Respuesta

0

Usted puede hacer esto con un LinearLayout horizontal usando atributo de peso. El siguiente código funcionará para usted. También establecí id para tus vistas, así que copia directamente y pega esto y funcionará en tu código.

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_height="wrap_content" 
    android:layout_width="fill_parent" 
    android:orientation="horizontal" 
    > 
    <TextView 
     android:id="@+id/TextView01" 
     android:layout_height="wrap_content" 
     android:layout_width="0dp" 
     android:layout_weight="1" 
     android:ellipsize="end" 
     android:maxLines="1" 
     android:text="Some Long and Random Text Some Long and Random Text" 
     /> 
    <TextView 
     android:id="@+id/TextView02" 
     android:layout_height="wrap_content" 
     android:layout_width="wrap_content" 
     android:layout_weight="0" 
     android:layout_gravity="right"  
     android:text="I am number 2" 
    /> 
</LinearLayout> 
+1

Tengo un problema con esta solución en mi proyecto, el primer texto se ellipsó como debería ser, pero deja un espacio vacío al final, porque acorta las palabras completas (y el último es bastante "largo") por lo que el segundo texto está más alejado de lo que debería ser . Cualquier solución a esto – Squeazer

0

idea de recibo de mis TextView y sólo tiene que utilizar su TextView como este, espero que sea el trabajo:

    <TextView 
        android:id="@+id/tv_songtitle" 
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content" 
        android:layout_marginLeft="5dp" 
        android:text="Song Title" 
        android:singleLine="true" 
        android:ellipsize="end" 
        android:textSize="13dp" 
        android:textStyle="bold" /> 
0

Uso atributo android:shrinkColumns="0" de TableLayout.

Cuestiones relacionadas