Ответ 1
setSingleLine()
или setSingleLine(true)
не позволяет TextView изменять высоту на большее количество строк и заставляет TextView игнорировать разрывы строк (символ \n
в строке).
setMaxLines(int n)
отображает первые n строк строки, отображаемых в TextView, которые разделены разрывом строки.
Например, пусть String будет "моей первой линией \n и моей второй строкой \n и третьей"
-
setSingleLine()
позволяет отображать TextView "моя первая строка и моя..", так как ширина экрана превышена и -
setMaxLines(1)
приводит к "моей первой строке" -
setMaxLines(2)
приводит к "моей первой строке" и под строкой "Моя вторая строка" -
setMaxLines(3)
, очевидно, не влияет на эту примерную строку.
Обновление: это должно работать для "setDoubleLine с усечением":
// optional: string.replace("\n",""); or string.replace("\n"," ");
tv.setSingleLine(false);
tv.setEllipsize(TextUtils.TruncateAt.END);
int n = 2; // the exact number of lines you want to display
tv.setLines(n);