Как заменить эллипсы краем затухания/затухания в текстовом представлении в Android SDK?

У меня есть список, каждая строка в списке имеет текст. Часть текста выходит за пределы экрана. У меня нет проблем с тем, чтобы обрезать текст и показать эллипсы. У меня нет проблем с «исчезновением края текста», однако исчезновение происходит на краю каждого текста, а не только тех, которые слишком велики для просмотра текста.

Я искал и искал и не могу найти способ, по сути, сделать точно то, что делают эллипсы, но вместо эллипсов затенить край текста только если он выходит за край экрана. Кто-нибудь может помочь? Прямо сейчас мое текстовое представление содержит:

android:fadingEdge="horizontal" 
android:inputType="text"
android:maxLines="1"

Я пробовал много других вещей безрезультатно.


person fatfreddyscat    schedule 20.09.2011    source источник
comment
p.s. только что понял, что когда я использую эти 3 поля (горизонтальное, текстовое, 1), я не могу выбрать элемент списка по какой-либо причине. просто подумал, что я укажу на это.   -  person fatfreddyscat    schedule 20.09.2011


Ответы (2)


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

В коде просто используйте два метода для этого текстового представления.

textViewObj.setSelected(true);
textViewObj.setEllipsize(TextUtils.TruncateAt.MARQUEE);
person Arpit Garg    schedule 20.09.2011
comment
У меня нет доступа к текстовому представлению в коде, но я установил размер эллипса в XML-файле макета, и это сработало. Спасибо!!! (Я думал, что делал это раньше, но по какой-то причине я просто предположил, что установка «эллипс» означает, что у меня будут многоточия, но, видимо, нет :-) Еще раз спасибо! - person fatfreddyscat; 21.09.2011
comment
p.s. к сожалению, у меня недостаточно репутации, чтобы проголосовать или принять ваш ответ, поэтому это будет зависеть от кого-то другого. - person fatfreddyscat; 21.09.2011
comment
да... у меня только репутация "13", но, говорит, мне нужно 15, чтобы проголосовать. Я не знаю, как заработать репутацию, хех. - person fatfreddyscat; 22.09.2011

Конкретный вызов метода для включения затухания горизонтального края (справа)

setHorizontalFadingEdgeEnabled(true)

Вот пример из конструктора моего класса ScrollTextView, который расширяет TextView:

public ScrollTextView(Context context, AttributeSet attrs) {
    this(context, attrs, android.R.attr.textViewStyle);
    setHorizontalFadingEdgeEnabled(true);
}
person Ari Lacenski    schedule 09.09.2014