Подтвердить что ты не робот

Текст не эллипсируется

У меня есть набор TextView для ellipsize, но когда я помещаю текст в него, это не делает. Любые идеи?

<TextView 
    android:id="@+id/LegalsView" 
    android:ellipsize="end"
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceMedium" />
4b9b3361

Ответ 1

Try:

android:singleLine="true"

Ответ 2

android:layout_width="wrap_content"

позволит TextView расширяться до тех пор, пока это необходимо (включая запуск экрана). Чтобы сделать его эллипсисом, вам нужно будет установить ширину, как рекомендуется для подключения к гражданину, желательно с android:layout_width="fill_parent" вместо абсолютного значения.

Дополнительные подсказки: вы также хотите установить maxLines TextView (возможно, 1), и чтобы получить фактический многоточий ( "..." ), вы, вероятно, также должны будете установить

android:scrollHorizontally="true"

Ответ 3

Вам нужно соответствовать настройкам для Android, чтобы правильно рассчитать положение объекта. Имеет несколько возможных комбинаций и зависит от остальной части макета в одной строке.

Это комбинация, которая работает:

android:layout_width="0dip" // dynamic width
android:layout_weight="1"   // less weight, other objects still "0"
android:ellipsize="end"     // ... into end of text (right)
android:singleLine="true"   // one line, deprecated, but necessary for some ambients
android:maxLines="1"        // one line, new mode

В целом вы указываете вес, если используете динамический макет или только фиксированный размер, тогда указывается только одна строка и настраивается, как отображается "...".

Ответ 4

Единственный способ, которым я смог выполнить эту работу, - установить width="1dp", weight="1", ellipsize="end", maxLines="1" и scrollHorizontally="true". Первые два имеют такой же эффект, что и width="match_parent" без расширения виджета, выходящего за пределы экрана, остальные три настройки должны были быть сделаны, чтобы получить текст для эллипсирования.

Ответ 5

Мое приложение начало игнорировать maxlines и ellipsize, когда я добавил

android:textIsSelectable="true"

Кажется, что эти параметры несовместимы.

Ответ 6

Если вы пытаетесь заставить многострочный многоточие работать, к сожалению, он работает не очень хорошо. Это известная ошибка на платформе Android, и насколько я знаю, она не была исправлена.
В TextView лучшее, что вы можете получить, - это 2 эллипсинга линий (что может быть достигнуто установкой

android:maxLines="2"

Обратитесь к этой ссылке.
Даже с абсолютной шириной, как указано в другом ответе, она все еще дает вам максимум, 2 линии эллипса. (Но, как уже упоминалось, однолинейный эллипс достигнут). Так, например, ваш текст может заполнить ваш 8-строчный TextView, но будет выглядеть так, когда вы включаете многоточие:

+---------------------------------------------------+
|                                                   |
| This is my cool text that is supposed to fill the |
| entire textview but unfortunately because of t... |
|                                                   |
|                                                   |
|                                                   |
|                                                   |
|                                                   |
|                                                   |
|                                                   |
|                                                   |
|                                                   |
|                                                   |
|                                                   |
|                                                   |
|                                                   |
+---------------------------------------------------+

Если вы знаете размер вашего TextView, вы можете использовать настраиваемый компонент здесь (к сожалению, проект проекта Google, который первоначально размещал его похоже, исчез, поэтому эта ссылка - все, что я мог найти).

Ответ 7

Если вы не определяете определенную ширину для вашего TextView, текст будет сначала эллипсироваться, когда ваш текст достигнет ширины родительского представления.

Ответ 8

Это решение работает:

android:ellipsize="end"
android:singleLine="false"
android:lines="3"
android:maxLines="3"

Ширина также может быть установлена ​​на "wrap_content"

Ответ 9

Вы меняете layout_width на определенный dp вместо wrap_content

и

использовать
андроид: SingleLine = "истина"

Android: ellipsize = "конец"

код:

    android:layout_width="50dp"
    android:layout_height="wrap_content"
    android:text="check this text"
    android:id="@+id/textView"
    android:singleLine="true"
    android:ellipsize="end"/>

Ответ 10

Выполняет только время выполнения, делает что-то вроде этого:

textView.setEllipsize(TruncateAt.END);
textView.setLines(1);
textView.setHorizontallyScrolling(true);
textView.setText("Long text goes here");

Ответ 11

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

        <TextView
            android:id="@+id/txt_title"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:maxLines="3"
            android:ellipsize="end"
            android:textStyle="bold"/>

Эллипсы появляются, когда текст превышает набор maxLines.

Ответ 12

Вы можете использовать этот код для прокрутки текста в textView:

 textView.setEllipsize(TextUtils.TruncateAt.MARQUEE);
        textView.setSingleLine();
        textView.setMarqueeRepeatLimit(10);
        textView.setFocusable(true);
        textView.setHorizontallyScrolling(true);
        textView.setFocusableInTouchMode(true);
        textView.requestFocus();

Ответ 13

Я думаю, вам нужно указать абсолютную ширину для работы.

android:layout_width="100dip"

или

android:layout_width="fill_parent"