Search code examples
androidandroid-layouttextview

How to use textview.getLayout()? It returns null


I’m trying set a layout for textview so I can use getEllipsisCount() method. But below code returns null as layout value. How can I take layout and then use getEllipsisCount(0) method.

public class MainActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        TextView mytextview =(TextView) findViewById(R.id.textView1);
        mytextview.setText(myText);
    
        Layout layout = mytextview.getLayout();
        if(layout != null){
            mytextview.setText("very good layout worked\n");
        }
    }
}

Solution

  • You are calling it too early, thats why it is returning null

    Try this

      ViewTreeObserver vto = mytextview.getViewTreeObserver();
        vto.addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
            @Override
            public void onGlobalLayout() {
               Layout layout = mytextview.getLayout();  
            }
        });