Android Linkify enlaces textColor ignorado, estilo CSS anula posible?
Estoy utilizando Linkify
en mi aplicación, y el texto del enlace visitado aparece como púrpura oscuro. Mi color de fondo de diseño general es azul oscuro por lo que es imposible de leer. El texto se establece como blanco, pero los enlaces visitados aparecen como púrpura oscura. ¿Cómo puedo anular esto?
<TextView android:text="Website:" android:layout_width="match_parent" android:layout_height="wrap_content" android:textSize="14dip" android:paddingBottom="2dip" android:background="#ffffff" android:textColor="#577dbe" /> <TextView android:text="http://www.mysite.com/" android:layout_width="match_parent" android:layout_height="wrap_content" android:textSize="12dip" android:paddingBottom="6dip" android:textColor="#ffffff" android:id="@+id/contactWeb1" />
- Cómo RelativeLayout Alinear Center android
- ¿Qué es TextView Gravity de forma predeterminada?
- Android SDK equivlent para viewWillAppear (iOS)?
- Hifenización en Android
- ¿Cómo puedo mostrar elipses en mi TextView si es mayor que la línea 1?
- Android Horizontal LinearLayout - Envolver elementos
- ¿Cómo hacer que el texto brille?
- Envoltura de texto mediante simple_list_item_multiple_choice
- Cómo evitar que las URL se envuelvan en TextView?
- TextView diferentes formas de añadir dibujable
- No inserte texto en Android TextView en el período en abreviatura
- Android textview relleno entre líneas
- ¿Cómo inserto un salto de línea en una cadena para mostrarlo en un widget Android TextView?
Resultó ser una solución simple !
Sin embargo, no podrá hacer la diferenciación visited
/ not visited
.
TextView contactWeb1 = (TextView) findViewById(R.id.contactWeb1); noteView.setText("http://www.blablaasd.com/"); noteView.setLinkTextColor(Color.red); //for example Linkify.addLinks(noteView, Linkify.ALL);
Mis intentos de atrapar estados visitados :
Utilizar
noteView.setLinkTextColor(getResources().getColorStateList(R.color.colors));
En lugar de
noteView.setLinkTextColor(Color.red);
En res/
crear carpeta de color
y crear colors.xml
en res/color/
colors.xml
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_window_focused="true" android:color="#00ff00"> </item> <item android:state_window_focused="true" android:color="#00ff00"> </item> <item android:color="#FF00ff"/> </selector>
He intentado mi mejor para coger estados visitados. He intentado todos los estados un selector puede tomar.
Podría haber perdido En caso de que se enteró, compartir (:
SOLUCIÓN ALTERNATIVA (sólo funciona para enlaces html)
Establecer la fuente Color por programación
Drawback (Ten cuidado con este punto)
-
Usted tendrá que coger si fue visitado o no (esto es factible)
Esto significa que no está reemplazando la funcionalidad de enlaces visitados .
CÓDIGO :
TextView contactWeb1 = (TextView) findViewById(R.id.contactWeb1); String desc = "<font color=\"red\"><a href='http://www.mysite.com/'>Visit my site</a></font>"; contactWeb1.setText(Html.fromHtml(desc)); contactWeb1.setMovementMethod(LinkMovementMethod.getInstance());
Añadir:
android:textColor="#ffffff"
Al elemento TextView en xml resuelve el problema … parece que sobreescribir textcolor anula otros estilos de color relacionados con el elemento
Vea esta pregunta:
El color de la vista de texto de Android no cambia cuando está inhabilitado
Intenté su código hacia fuera y el color de mi TextView no estaba cambiando. Bueno, una solución a su sería añadir un oyente onClick a la TextView y establecer el color de la TextView en ella. Por lo tanto, siempre que se haga clic en el texto, se ajustará al color que especifique.
Me encontré con el mismo problema con Linkify . Puede utilizar LinkMovementMethod en su lugar y convertir su texto en SpannableString .
TextView contactWeb1 = (TextView) findViewById(R.id.contactWeb1); SpannableString str = SpannableString.valueOf(contactWeb1); str.setSpan(new URLSpan(contactWeb1.getText()), 0, str.length() -1, Spannable.SPAN_INCLUSIVE_EXCLUSIVE); contactWeb1.setMovementMethod(LinkMovementMethod.getInstance());
- Cómo declarar dos paquetes con sus actividades en el archivo de manifiesto android?
- SwipeRefreshLayout sin animación en la creación de fragmentos