Android TextView no actualiza su texto cuando textIsSelectable está establecido en true

Me enfrenté a este extraño problema que me causó mucho dolor de cabeza y problemas.

He publicado una aplicación que es un repositorio de varios libros, decidí usar TextView para mostrar el texto de cada capítulo porque se ajusta a los requisitos y es rápido y fácil de usar.

El usuario le pidió que pudiera seleccionar un texto y copiarlo, usé textIsSelectable = true y todo estuvo bien, al día siguiente me llamó para informar que el texto no cambia, abre un capítulo y cambia a otro capítulo pero el texto sigue siendo el mismo.

Pensé que podría ser un problema lógico de mi parte, pero después de un poco de depuración el problema estaba en TextView, cuando establecí textIsSelectable = false; todo estuvo bien.

Para asegurarme de que usé un int estático que se incrementa cada vez que se muestra el texto, el texto permaneció sin cambios.

Entonces, ¿cuál es el problema? ¿Estoy usando TextView de manera incorrecta? O es algún error en el propio TextView?

Aquí está mi diseño (txtBody es el TextView que causa el problema)

<?xml version="1.0" encoding="utf-8"?> <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:background="@android:color/white"> <ScrollView android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/scrollView" android:fillViewport="true" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" android:gravity="right"> <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="Title Text" android:id="@+id/txtTitle" android:textSize="24sp" android:padding="5dp" android:gravity="right"/> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Detail Text" android:id="@+id/txtBody" android:background="@android:color/white" android:gravity="right" android:textColor="@android:color/black" android:textSize="16sp" android:padding="5dp" android:enabled="true" android:textIsSelectable="true" android:selectAllOnFocus="false" android:soundEffectsEnabled="true"/> </LinearLayout> </ScrollView> </FrameLayout> 

Utilizo este código para establecer el texto:

 String body = MainDataManager.getInstance().getChapterBody(book.getTable(), chapter.getId()); updateTextStyle(); txtTitle.setText(chapter.getTitle()); txtBody.setText(body, TextView.BufferType.SPANNABLE); 

One Solution collect form web for “Android TextView no actualiza su texto cuando textIsSelectable está establecido en true”

Uase invalidate () antes de cambiar el texto de textview.

  String body = MainDataManager.getInstance().getChapterBody(book.getTable(), chapter.getId()); updateTextStyle(); txtTitle.invalidate(); txtTitle.setText(chapter.getTitle()); txtBody.invalidate(); txtBody.setText(body, TextView.BufferType.SPANNABLE); 
  • Selector de texto no funciona
  • Cómo mostrar 3 puntos al final del texto en la vista de texto
  • Android: Colorear parte de una cadena usando TextView.setText ()?
  • Android: ellipsize end - Caracteres adicionales después de la elipse
  • TextView setText problema
  • Vista lateral con XML Android
  • Actualizar Android TextView
  • ¿Es posible escalar drawableleft & drawableright en textview?
  • El texto de TextView desaparece cuando se gira el dispositivo
  • ¿Cómo se utiliza EasyEditSpan en Android para permitir la edición parcial de texto?
  • TextView - OnClick - Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.