¿Cómo usar textview.getLayout ()? Devuelve null

Estoy tratando de establecer un diseño para textview para que pueda utilizar el método getEllipsisCount() . Pero debajo del código devuelve nulo como valor de disposición. ¿Cómo puedo tomar el diseño y luego utilizar el getEllipsisCount(0) .

  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"); } } 

Usted lo está llamando demasiado pronto, thats porqué está volviendo null

Prueba esto

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

De la documentación :

Public final Diseño getLayout ()

Añadido en el nivel 1 de API Devuelve el diseño que se está utilizando actualmente para mostrar el texto. Esto puede ser nulo si el texto o el ancho ha cambiado recientemente.

Así que probablemente su texto tiene cambios o lo llaman demasiado pronto.

Mira esta respuesta donde se dice

Esto sólo funciona después de la fase de diseño, de lo contrario el diseño devuelto será nulo, así que llame a esto en un lugar apropiado en su código.

En primer lugar, no sé si es un error tipográfico o es intencional, pero ha declarado un método "settext" en lugar del setText predefinido. Sin embargo, para obtener una referencia de su diseño le sugiero lo siguiente:

 LayoutInflater inflater = getLayoutInflater(); RelativeLayout textViewLayout = (RelativeLayout) inflater.inflate(R.layout.activity_main,null); if(textViewLayout!=null) { mytextview.setText("very good layout worked\n"); } 

Suponiendo que su TextView pertenece a un RelativeLayout .

Llame a mytextview.getLayout() en onStart o onResume callback.

Llamada

 TextView.onPreDraw(); 

Crea el diseño.

  • Cómo establecer el ancho de la ventana de texto wrap_content pero limitar a 1/3 del ancho de los padres
  • Android: "nowrap" en Spannable en TextView
  • Android: agrega texto a la presentación al pulsar el botón
  • Cómo centrar un texto de dos líneas en un TextView en Android?
  • Cómo mostrar un formato doble como un precio en una vista de texto en android
  • Android setMovementMethod en un TextView dentro de un ListView
  • Androide ClickableSpan intercepta el evento de clic
  • Cambiar el color de fondo de un TextView cuando se hace clic
  • Cambiar entre un TextView y EditText
  • Ajustar el fondo al texto en TextView en android
  • Ajuste automático de TextView para Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.