Поле 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"/>