I'm having a hard time reseting the maxLines
attribute of a TextView
programmatically.
Just tried setting to 0
and it doesn't work. -1
crashes the application. I could use a simpler workaround and set the maxLines
to 5000
but I don't want to do that.
Any ideas how to do that?
UPDATED
Well, I've found one problem.. I've set the Ellipsize as well... I'm just going to use the following workaround:
TextView questionDetail = (TextView) mQuestionDetailHeader.findViewById(R.id.desc);
questionDetail.setText(mCurrentQuestion.getQuestion());
questionDetail.setMaxLines(Integer.MAX_VALUE); //As in the android sourcecode
questionDetail.setEllipsize(null);
As there isn't yet an approved answer - the proper way to reset the maxlines property of the TextView is:
textView.setMaxLines(Integer.MAX_VALUE);
As per Valdemar's comment and this stackoverflow answer. Using -1 will cause an
ArrayIndexOutOfBoundsException
.Keep in mind only
END
andMARQEE
setEllipsize() settings will be respected for maxlines >= 2 according to the documentation:if you want to have just a single line , then why don't you use:
The
-1
should not crash your application. This actually what is used insideTextView
by default:This piece of code shows, that when
android:maxLines
is not specified, then code uses-1
to set the value viasetMaxLines()
function.I also made test application to verify my conclusions. And it works fine without crashing:
For setting the maxLines for a text use mTextView.setMaxLines(0) or you have to programmatic-ally measure of the height text and multiply with the number of max line The result should set as the height of the textView