Я пытаюсь получить строку текста, которая будет выглядеть примерно так:
foofoofoo - barbarbar
но я хочу, чтобы он эллипс foo и bar, если он не помещается на одной строке.
то есть я пытаюсь сократить их.
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<TextView android:id="@+id/text_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:adjustViewBounds="true"
android:maxWidth="0dip"
android:layout_weight="1"
android:textColor="#ffffff"
android:singleLine="true"
android:ellipsize="true"
android:text="foofoofoofoo" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="#ffffff"
android:text=" - " />
<TextView
android:id="@+id/text_2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:maxWidth="0dip"
android:layout_weight="1"
android:textColor="#ffffff"
android:singleLine="true"
android:ellipsize="true"
android:text="barbarbarbar" />
</LinearLayout>
Потерпи меня, это работает частично.
Установка TextView
s layout_width
на 0dip
и layout_weight
на 1
означает, что они будут занимать 50% доступного пространства каждый.
Установка singleLine
в true
и ellipsize
в true
означает, что они будут выглядеть как foofoo ... , если текст больше контейнера.
Поэтому мой результат (если текст длиннее) должен быть
foofoo .. - barbar ..
Что это! Так что это работает.
Теперь я пытаюсь исправить случай , если первый TextView
(id: text_1) имеет текст, который меньше 50%, заданных layout_width="0dip"
и layout_weight="1"
I хочу это wrap_content
. В противном случае это выглядит так:
foo пробел - barbar ..
а я хочу
foo - barbarbar
Вот почему я изменил layout_width="wrap_content"
и добавил android:maxWidth="0dip"
, но это не работает! Кажется, что я игнорирую, говоря wrap_content
, и все еще высказываю 50%!
Я читал, что вам нужно добавить android:adjustViewBounds="true"
для maxWidth
, чтобы это работало, но это никак не отразилось.