How to disable the TextView maxLines programmatically?

前端 未结 4 1494
栀梦
栀梦 2021-02-04 23:55

I\'m having a hard time reseting the maxLines attribute of a TextView programmatically.

Just tried setting to 0 and it doesn\'t wo

相关标签:
4条回答
  • if you want to have just a single line , then why don't you use:

        txtView.setSingleLine(true);
    
    0 讨论(0)
  • 2021-02-05 00:20

    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

    0 讨论(0)
  • 2021-02-05 00:27

    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 and MARQEE setEllipsize() settings will be respected for maxlines >= 2 according to the documentation:

    If setMaxLines(int) has been used to set two or more lines, END and MARQUEE* are only supported (other ellipsizing types will not do anything).

    0 讨论(0)
  • 2021-02-05 00:39

    The -1 should not crash your application. This actually what is used inside TextView by default:

    case com.android.internal.R.styleable.TextView_maxLines:
                setMaxLines(a.getInt(attr, -1));
                break;
    

    This piece of code shows, that when android:maxLines is not specified, then code uses -1 to set the value via setMaxLines() function.


    I also made test application to verify my conclusions. And it works fine without crashing:

    public class HelloWorld extends Activity
    {           
    
        @Override
        public void onCreate(Bundle savedInstanceState) 
        {       
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity);
    
            TextView text = (TextView)findViewById(R.id.text);
            text.setMaxLines(-1);    
        }
    }
    
    0 讨论(0)
提交回复
热议问题