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

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.