Использование getEllipsisCount
не будет работать с текстом, в котором есть пустые строки.Я использовал следующий код, чтобы он работал:
message.getViewTreeObserver().addOnPreDrawListener(new ViewTreeObserver.OnPreDrawListener() {
@Override
public boolean onPreDraw() {
if(m.isEllipsized == -1) {
Layout l = message.getLayout();
if (message.getLineCount() > 5) {
m.isEllipsized = 1;
message.setMaxLines(5);
return false;
} else {
m.isEllipsized = 0;
}
}
return true;
}
});
Не устанавливайте maxLineCount
в своем XML.Затем вы можете проверить lineCount
в вашем коде и, если оно больше определенного числа, вы можете вернуть false, чтобы отменить рисование TextView
и установить количество строк, а также флаг, чтобы сохранить ли текствид слишком длинный или нет.Текстовое представление снова будет отображаться с правильным количеством строк, и вы узнаете, имеет ли оно эллиптическое значение или нет с флагом.
Затем вы можете использовать флаг isEllipsized
, чтобы делать все, что вам нужно.