5

Mam względny wygląd, a w nim dwa widoki tekstu. Textview 1 jest wyrównany do góry i pozostawiony z rodzica. Textview 2 jest wyrównany na prawo od widoku tekstowego 1, a na prawo z rodzica. Stwarza to problem, jeśli tekst w 1 jest zbyt długi, co oznacza, że ​​1 wypchnie 2 z najgorszego przypadku na ekranie.TextView i Ellipsize, gdy są ściskane przez inne TextView

Jak sprawić, by ci dwaj "poświęcili się" z tekstu nr 1 zamiast 2? min szerokość nie działa. Moim ostatecznym celem jest elipsyzacja tekstu 1, ale wydaje się, że zależy on przede wszystkim od tego, aby tekst był poprawnie dopasowany.

Oto 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

Właściwie to odpowiada na to pytanie: http://stackoverflow.com/questions/3785221/twoj-textviews-side-by-side-only-one-to-ellipsize – sandos

Odpowiedz

0

można łatwo zrobić z linearlayout poziomej używając atrybutu wagi. Poniższy kod zadziała dla Ciebie. Ustawiam również ID dla twoich widoków, więc po prostu skopiuj to bezpośrednio i będzie działać w twoim kodzie.

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

Mam problem z tym rozwiązaniem w moim projekcie pierwszy tekst jest elipsy, jak powinien, ale pozostawia puste miejsce na końcu, ponieważ skraca całe słowa (a ostatni jest dość "długi"), więc drugi tekst jest dalej niż powinien być . Jakiekolwiek rozwiązanie tego problemu – Squeazer

0

get pomysł z mojego TextView i po prostu korzystać z TextView tak, mam nadzieję, że to praca:

    <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

atrybut Zastosowanie android:shrinkColumns="0" z TableLayout.