¿Cómo puedo solucionar problemas de visibilidad de html.fromHtml link focus (en ICS y Honeycomb)?

Para obtener un TextView para mostrar (y actuar amistoso con) Html cadenas de mi código se ve algo así como:

 // itemHtml is a String of HTML defined above TextView itemContent = (TextView) findViewById(R.id.itemContent); itemContent.setText(Html.fromHtml(itemHtml)); itemContent.setMovementMethod(LinkMovementMethod.getInstance()); 

Si la cadena Html tiene un vínculo, TextView resulta en vínculos que se pueden hacer clic y se pueden enfocar. Cuando el usuario se centra en un enlace específico (por ejemplo, utilizando el d-pad), el texto del enlace cambia de manera significativa para mostrar que se obtuvo el enfoque.

El problema es que cuando pruebo este mismo patrón usando dispositivos con un pad de d-pad usando Honeycomb (por ejemplo, un Google TV) o Ice Cream Sandwich de Android, el enlace en el texto no muestra ninguna indicación notable de que el enlace tiene foco.

Sé que está consiguiendo el foco, porque cuando usted golpea entonces entra él hace la acción especificada. Incluso puede moverse entre varios enlaces en el texto; Usted acaba de dejar adivinar en qué enlace se encuentra actualmente, lo que resulta en una muy mala experiencia de usuario.

¿Hay algo que estoy haciendo mal? ¿Hay alguna manera de solucionar esto o evitar esto?

4 Solutions collect form web for “¿Cómo puedo solucionar problemas de visibilidad de html.fromHtml link focus (en ICS y Honeycomb)?”

Edit : Después de ir un poco loco, finalmente pensé que encontré una solución. Sin embargo, esta solución sólo funciona para Honeycomb . ICS todavía no se resuelve!

A partir de la API 11, Android tiene una nueva configuración en TextViews para definir si el texto es seleccionable.

Puede setTextIsSelectable(true) con setTextIsSelectable(true) en un TextView, o definirlo en el diseño XML android:textIsSelectable="true"

Probablemente es mejor definirlo en XML, de modo que mantener la aplicación hacia atrás-compatible es trivial. Sólo asegúrate de que estás dirigiendo la versión> = 11, o probablemente obtendrá un error.

La forma en que HTML.fromHTML opera es mediante la creación de "spans" con diversos efectos a lo largo de los diversos caracteres de la cadena. Una solución para esto sería utilizar ClickableSpan junto con otro de los CharacterStyles para colorear el texto como clicable. El span anterior le permitirá registrar una devolución de llamada, y esta devolución de llamada podría ser para difundir una intención de ver una url (que abriría un navegador).

Las listas de estado de color del texto para Honeycomb + pueden no establecer el estado enfocado en un color diferente o anular el color para que sea constante.

Compruebe los colores + estilos en your_android_sdk_directory / android-14 / data / res /

Configurar el texto en android: autoLink = "web" también podría ayudar?

La mejor manera de hacerlo es agregar estilo CSS a su html. Sé que soporta Android : selector de hover . Así que tal vez algo como esto:

 String myLink = "<a href=\"http:\/\/google.com\">your link</a>" Html.fromHtml(myLink); 

Y encontrar una manera de incluir los datos CSS a ella: (No estoy seguro de cómo, pero creo que es posible)

 a :hover { color: red; } 

ACTUALIZAR:

Creo que la respuesta de su pregunta está ahí .

  • Cómo configurar el control focusable de Android ActionBar mediante programación
  • El paseo de Google TV parece incorrecto. ¿Complementos de terceros?
  • Error al leer desde png.class
  • Screensaver muestra al cambiar el tamaño de una ventana con WindowManager
  • Mecanismo para que las aplicaciones muestren su contenido de imagen en 4k nativo
  • Cómo puede acceder a la memoria externa en Google TV
  • Activar el monitor desde la aplicación de Google TV
  • Identificar GoogleTv desde la aplicación de Android
  • Android Studio / Win8 / ERR_NAME_NOT_RESOLVED
  • Android SDK 14 - No se puede crear un dispositivo GTV
  • Cómo utilizar D-pad navegar cambiar entre la fila de listview y sus decendants (soporte de Google-TV)
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.