Приоритет усечения Android TextView или сопротивление сжатию [дубликаты]
На этот вопрос уже есть ответ здесь:
Расширяйте TextView с помощью wrap_content, пока соседний вид не достигнет конца родительского 6 ответовЯ выкладываю 3 вида по горизонтали на экране (изображение фиксированного размера и 2 однострочных текста:leftTextView
а такжеrightTextView
) и я пытаюсь получитьrightTextView
обнять противleftTextView
, но в случае, если ширина обеих меток превысит размер экрана, обрежьтеleftTextiew
.
Пример желаемой функциональности:
|img|leftText|rightText| ||(end of screen)
|img|leftTextMedium|rightText| ||
|img|leftTextTooLongSoTrunc...|rightText||
Что на самом деле происходит:
|img|leftText|rightText| ||(end of screen)
|img|leftTextPrettyLongButNotHuge|rightT||
|img|leftTextWhichIsIncrediblyLongBlahBl||
В настоящее время, если размер обоих текстовых представлений превышает ширину представления,rightTextView
заканчивает тем, что был раздавлен, чтобы освободить место, хотя я установилandroid:ellipsize="end"
наleftTextView
.
Есть ли способ сделатьleftTextView
иметь "приоритет усечения", который говорит, что должен усечь, если это заставит другие представления не соответствовать? Или на другой стороне, могу ли я установитьrightTextView
иметь «сопротивление сжатию», чтобы он не был сжат, чтобы освободить место дляleftTextView
? Вот пример моего 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>
Вещи, которые я пробовал:
вleftTextView
, добавитьtoStartOf
/ toLeftOf
rightTextView
(вылетает приложение)Вместо выравниванияrightTextView
до конца / справа отleftTextView
переверните и выровняйтеleftTextView
к началу / слева отrightTextView
, Это приводит кrightTextView
привязка к концу экрана, а не прямо справа отleftTextView
, Пример того, как это выглядит:
|img|leftText |rightText||
|img|leftTextMedium |rightText||
|img|leftTextTooLongSoTrunc...|rightText||
Даже если я поставлюandroid:minWidth="25dp"
просто чтобы обеспечить хотя бычасть изrightTextView
является видимым (что я не хочу делать, потому что эта длина текста является переменной), он все равно сжимает ширину, чтобы освободить место дляleftTextView
.
LinearLayout
и установив вес наleftTextView
, Результат был визуально идентичен тому, что я пробовал в # 2.