Układam 3 widoki poziomo na ekranie (obraz o stałym rozmiarze i 2 jednolinijkowe widoki tekstowe: leftTextView
i rightTextView
) i próbuję uzyskać rightTextView
do przytulenia leftTextView
, ale jeśli szerokość obu etykiet przekroczyłaby rozmiar ekranu, skróć leftTextiew
.Android TextView Priorytet skracania lub Kompresja rezystancji
Przykład pożądanego funkcjonalności:
|img|leftText|rightText| ||(end of screen)
|img|leftTextMedium|rightText| ||
|img|leftTextTooLongSoTrunc...|rightText||
Co się rzeczywiście dzieje:
|img|leftText|rightText| ||(end of screen)
|img|leftTextPrettyLongButNotHuge|rightT||
|img|leftTextWhichIsIncrediblyLongBlahBl||
Obecnie, jeśli wielkość obu widokach tekstu przekracza szerokość widoku, tym rightTextView
kończy się coraz spłaszczony w dół, aby pokoju, chociaż ustawiłem android:ellipsize="end"
na leftTextView
.
Czy istnieje sposób, aby leftTextView
miał "priorytet skracania", który mówi, że powinien on zostać obcięty, jeśli spowodowałoby to, że inne widoki nie pasowały? Lub po drugiej stronie, czy mogę ustawić rightTextView
, aby miał "odporność na ściskanie", aby nie został zgnieciony, aby zrobić miejsce dla leftTextView
? Oto próbka mojego XML:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/fixedWidthImage"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
<TextView
android:id="@+id/leftTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toEndOf="@+id/fixedWidthImage"
android:layout_toRightOf="@id/fixedWidthImage"
android:maxLines="1"
android:textSize="18sp"
android:ellipsize="end" />
<TextView
android:id="@+id/rightTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toEndOf="@+id/leftTextView"
android:layout_toRightOf="@+id/leftTextView"
android:layout_alignParentEnd="true"
android:layout_alignParentRight="true"
android:maxLines="1"
android:textSize="12sp" />
</RelativeLayout>
Rzeczy próbowałem:
- W
leftTextView
, dodaćtoStartOf
/toLeftOf
rightTextView
(wywala aplikację) Zamiast wyrównując
rightTextView
na końcu/na prawo odleftTextView
, odwróć go i dopasujleftTextView
do początku/z lewej stronyrightTextView
. Powoduje to, żerightTextView
jest zakotwiczony na końcu ekranu zamiast bezpośrednio na prawo odleftTextView
. Przykład jak to kończy się patrzy:|img|leftText |rightText|| |img|leftTextMedium |rightText|| |img|leftTextTooLongSoTrunc...|rightText||
Nawet jeśli ustawić
android:minWidth="25dp"
tylko w celu zapewnienia przynajmniej część zrightTextView
jest widoczny (co nie chcę zrobić, ponieważ ten tekst jest zmienna długość) nadal kompresuje szerokość, aby zrobić miejsce dlaleftTextView
.- Za odpowiedź na Emanuel Moecklin próbowałem owijania w
LinearLayout
i ustawienie masy naleftTextView
. Wynik był wizualnie identyczny z tym, którego próbowałem w punkcie 2.
W mojej obronie oznakowania duplikatu, że drugie pytanie nie ma odpowiedzi w czasie poprosiłem moją. Poza tym jego tytuł jest okropny, prawdopodobnie dlatego nie zdawałem sobie sprawy, że on istnieje. – Stonz2