У меня есть текстовое представление, которое переполняется независимо от того, какие параметры я ему даю

89
6

Это текстовое представление, которое может иметь длинный текст в стороне от него. он перетекает и выталкивает половину баров рейтинга с экрана.

Как я могу заставить его вырезать текст, а не отключать рейтинги?

<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:padding="5dp"
android:weightSum="2" >

<TextView
android:id="@+id/rest_name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:ellipsize="marquee"
android:fadingEdge="horizontal"
android:paddingLeft="3dp"
android:singleLine="true"
android:text="long text goes goes here long text goes goes here long text goes goes here"
android:textAppearance="?android:attr/textAppearanceLarge" />

<RatingBar
android:id="@+id/myRatingBar"
style="?android:attr/ratingBarStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="5dp"
android:layout_weight="1"
android:numStars="5" />
</LinearLayout>

спросил(а) 2013-03-16T19:31:00+04:00 7 лет, 6 месяцев назад
1
Решение
71

вы можете использовать следующий атрибут в своем текстовом представлении

android:layout_toLeftOf="@id/myRatingBar" 

вы также можете указать определенную ширину вашего текста в xml

  android:layout_width="wrap_content"

а также вы можете использовать следующий атрибут, чтобы ограничить длину текстового вида

android:maxLength=""

ответил(а) 2013-03-16T19:33:00+04:00 7 лет, 6 месяцев назад
40

Поскольку вы настроили android:layout_weight="1" для обоих представлений, то я думаю, что вы можете сделать android:layout_width="match_parent"

Это приведет к тому, что оба представления имеют одинаковую ширину, равную половине ширины родительского элемента. Или вы можете изменить поле веса в соответствии с любым желаемым значением.

ответил(а) 2013-03-16T19:50:00+04:00 7 лет, 6 месяцев назад
41

Использовать android:maxLines="1". Это сократит текст в TextView, если он длинный и не будет выставлять рейтинги.

ответил(а) 2013-03-16T19:45:00+04:00 7 лет, 6 месяцев назад
40

вы можете проверить длину строки и если она больше заданной длины и сделать что-то вроде ... в конце строки

но вы устанавливаете textview в wrap_context вы также можете просто сделать его жесткой шириной, чтобы он не менялся

ответил(а) 2013-03-16T19:33:00+04:00 7 лет, 6 месяцев назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема