Pregunta

En mi aplicación para Android que utilice un TabWidget sin ningún tipo de personalización especial. Me gustaría Android para cuidar el aspecto específico, que funciona bien, si se compara con el 2,1 Android 1.6, por ejemplo. Sólo por el uso de un TabWidget el mismo código da lugar a diferentes formas de pestañas debido a que el SDK define cómo dibujar ella. Aquí es cómo se ve en 2.1 por ejemplo:

text alt

Por lo tanto, la pestaña destacado es gris y el tipo de letra es de color blanco y se puede leer muy bien.

Sin embargo, si usted tiene HTC Sense, que se parece a esto: text alt

La imagen no es tan buena, pero sólo yo creo que se trata de texto en blanco sobre fondo blanco, que no es realmente tan fácil de leer ...

Mis preguntas son:

1) ¿Por qué crear un androide TabWidget con blanco en texto blanco? Nunca se ha definido ya sea el color del texto o el color de fondo, por lo que el sistema se supone que elegir los colores sensibles.

2) Asumo que otros TabWidgets se ven muy bien en HTC Sense, porque de lo contrario sería un problema bastante grande y popular. ¿Por qué es mi TabWidget teniendo este problema y no a otros.

3) ¿Cómo puedo solucionar este problema sin cambiar la apariencia de los dispositivos que no tiene sentido?

Como ya he dicho que no personalizar 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"
            >

Así que, además de definir negro como mi color de fondo general de la aplicación, no hay color o estilo Defintion hecho. La única excepción podría ser que estoy usando los identificadores estándar de Android para TabHost y TabWidget.

/ Editar: Aquí está la Defintion 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.

/ Edit 2: El dispositivo que viene con el blanco en texto blanco es una leyenda de HTC con Android 2.1 por cierto.

/ Editar 3: dream3r tenía razón. El cambio del valor targetSdk a 4 hizo el truco para mí también (antes, se establece en 6)! Realmente no entiendo, pero puedo vivir con eso por ahora. :)

Aquí está una imagen de cómo se ve ahora: text alt

¿Fue útil?

Solución

¿Tiene conjunto android:targetSdkVersion en su AndroidManifest.xml?

He hecho algunas pruebas usando la aplicación de la muestra y tengo el mismo problema si fijo targetSdkVersion a valor mayor que 4.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top