Я выкладываю 3 вида горизонтально на экране (фиксированное изображение и 2 однострочных текста: leftTextView
и rightTextView
), и я пытаюсь получить rightTextView
, чтобы обнять leftTextView
, но в том случае, если ширина обеих меток будет превышать размер экрана, обрезайте leftTextiew
.Приоритет уклонения Android TextView или сопротивление сжатию
Пример требуемой функциональности:
|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
.- Ответ на вопрос Emanuel Moecklin, я попробовал обернуть в
LinearLayout
и установить вес наleftTextView
. Результат был визуально идентичен тому, что я пробовал в # 2.
В моей защите дубликата маркировки, что другой вопрос не имеет ответа в то время, я спросил мой. Кроме того, его название ужасно, и, вероятно, поэтому я не понимал, что он существует в первую очередь. – Stonz2