Макет Android с использованием layout_weight, layout_width и maxWidth

Я пытаюсь получить строку текста, которая будет примерно такой же, как

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>

Потерпите, это работает частично.

Установка layout_width TextView на 0dip и layout_weight равным 1 означает, что каждый из них будет занимать 50% доступного пространства.

Установка для singleLine значения true и эллипсис до true означает, что они будут выглядеть как foofoo ... если текст больше, чем контейнер.

Поэтому мой результат (если текст длиннее) должен быть

foofoo .. - barbar ..

Что это такое! Так что это работает.

Теперь я пытаюсь исправить ситуацию , если первый TextView (id: text_1) содержит текст, который меньше 50%, заданных layout_width = "0dip" и layout_weight = "1" Я хочу wrap_content . В противном случае это выглядит так:

foo пробел - barbar ..

и я хочу

foo - barbarbar

Вот почему я изменил layout_width = "wrap_content" и добавил android: maxWidth = "0dip" , но это не работает! Кажется, я не обращаю внимания на то, что я говорю wrap_content и все еще даю это представление 50%!

Я читал, что вам нужно добавить android: adjustViewBounds = "true" для maxWidth работать, но это не повлияло.

5
задан Luuklag 20 May 2019 в 08:52
поделиться