Поле Android TextView SingleLine скрывает длинный текст

У меня есть TextView, который сидит в левой части экрана и устанавливается с помощью силы тяжести = "право", и он устанавливается с помощью SingleLine = "true".

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

Как я могу создать простое текстовое представление, содержащее одну строку текста, и сохраняет свой макет, даже если что-то неожиданное происходит?... или даже что-то предсказуемое.

<TextView
    android:id="@+id/tempF"
    android:text="@string/tempF"
    android:layout_width="146dp"
    android:layout_height="wrap_content"
    android:textColor="#cccccc"
    android:textStyle="bold"
    android:textSize="92dp"
    android:fontFamily="serif"
    android:gravity="right"
    android:layout_marginTop="60dp"
    android:layout_gravity="top|left"
    android:singleLine="true"
    />

Ответы

Ответ 1

Это цель "эллипсиса" - усечение части текста, чтобы указать дополнительный текст.

В этом случае вам просто нужно добавить что-то вроде:

android:ellipsize="end"

или вам может потребоваться глубже:

Автоматически эллипсировать строку в Java

Или посмотрите на это:

многострочный текст для Android с эллипсисом

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

Это действительно очень долго...

(три периода - это многоточие - ваш текст идет в противоположном направлении, но он все равно должен работать)

С помощью пользовательского TextView вы можете изменить "..." на ничего или что-либо еще, что вы хотите (даже изображение, которое я сделал).

Вы также можете выделить текст:

TextView Marquee не работает

Ответ 2

Вы должны играть с атрибутом ellipsize для TextView.Check ниже:

<TextView
    android:id="@+id/tempF"
    android:text="@string/tempF"
    android:layout_width="146dp"
    android:layout_height="wrap_content"
    android:textColor="#cccccc"
    android:textStyle="bold"
    android:textSize="92dp"
    android:fontFamily="serif"
    android:gravity="right"
    android:layout_marginTop="60dp"
    android:layout_gravity="top|left"
    android:singleLine="true"
    android:ellipsize="end"
    />

Ответ 3

Добавить 2 свойства в xml

android:singleLine="true"

android:ellipsize="end"

Ответ 4

           <TextView
            android:id="@+id/tv_desc"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textColor="@color/colorGray"
            android:textSize="@dimen/_18dp"
            android:padding="@dimen/_2dp"
            android:singleLine="true"
            android:ellipsize="end"
            android:text="@string/desc"/>