Android: la pestaña resaltada de TabWidget no se puede leer en HTC Sense
En mi aplicación de Android uso un TabWidget sin ninguna personalización especial. Me gustaría que Android se encargue de la apariencia específica, que funciona bien si compara Android 1.6 con 2.1, por ejemplo. Simplemente usando un TabWidget, el mismo código conduce a diferentes formas de pestañas porque el SDK define cómo dibujarlo. Así es como se ve en 2.1 por ejemplo:
Entonces, la pestaña resaltada es gris y la fuente es blanca y puedes leerla bastante bien.
Pero, si tiene HTC Sense, se ve así:
La imagen no es tan buena, pero solo créanme que es un texto blanco sobre fondo blanco que en realidad no es tan fácil de leer ...
Mis preguntas son:
1) ¿Por qué Android crea un TabWidget con texto blanco sobre blanco? Nunca definí ni el color del texto ni el color de fondo, por lo que se supone que el sistema debe elegir colores sensibles.
2) Asumo que otros TabWidgets se ven bien en HTC Sense, porque de lo contrario sería un problema bastante grande y popular. Entonces, ¿por qué mi TabWidget tiene este problema y no otros?
3) ¿Cómo puedo solucionar este problema sin cambiar la apariencia en dispositivos que no son Sense?
Como dije, no personalicé el TabWidget de ninguna manera. Aquí está mi definición:
<TabHost xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/tabhost"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@android:color/black"
>
<LinearLayout
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TabWidget
android:id="@android:id/tabs"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
<FrameLayout
android:id="@android:id/tabcontent"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="0dp"
>
<ScrollView
android:id="@+id/shortenerScrollView"
android:layout_height="fill_parent"
android:layout_width="fill_parent"
android:background="@android:color/black"
android:fadingEdge="horizontal"
>
Entonces, además de definir el negro como mi color de fondo general de la aplicación, no hay una definición de color o estilo hecha. La única excepción podría ser que estoy usando ID de Android estándar para TabHost y TabWidget.
/ Editar: Aquí está la definición de las pestañas en el método onCreate:
th = getTabHost();
th.addTab(th.newTabSpec("shortener").setIndicator(getString(R.string.tabShortenerName),
res.getDrawable(R.drawable.url_zip)).setContent(R.id.shortenerScrollView));
La clase extiende una TabActivity.
/ Edición 2: el dispositivo que aparece con el texto blanco sobre blanco es un HTC Legend con Android 2.1 por cierto.
/ Edición 3: dream3r tenía razón. ¡Cambiar el valor de targetSdk a 4 también me ayudó (antes, estaba configurado en 6)! Realmente no lo entiendo, pero puedo vivir con eso por ahora. :)
Aquí hay una foto de cómo se ve ahora: