Android: onglet réhaussées de TabWidget pas lisible sur HTC Sense
Question
Dans mon application Android J'utilise un TabWidget sans aucune personnalisation spéciale. Je voudrais Android de prendre soin de l'aspect spécifique, ce qui fonctionne très bien si l'on compare Android 1.6 avec 2.1 par exemple. En utilisant simplement un TabWidget les mêmes pistes de code à différentes formes d'onglets, car le SDK définit comment dessiner. Voici comment il regarde 2.1 par exemple:
Ainsi, l'onglet en surbrillance est gris et la police est blanche et vous pouvez le lire assez bien.
Mais, si vous avez HTC Sense, il ressemble à ceci:
L'image est pas bon, mais juste me croire que c'est un texte blanc sur fond blanc qui est pas vraiment facile à lire ...
Mes questions sont les suivantes:
1) Pourquoi créer un Android TabWidget avec texte blanc sur fond blanc? Je ne ai jamais défini soit la couleur du texte ou la couleur d'arrière-plan, de sorte que le système est censé choisir des couleurs sensibles.
2) Je suppose que d'autres TabWidgets regardent très bien sur HTC Sense, car sinon ce serait tout à fait un gros problème et populaire. Alors, pourquoi est mon TabWidget avoir ce problème et pas d'autres.
3) Comment puis-je résoudre ce problème sans changer l'apparence sur les appareils non-sens?
Comme je l'ai dit que je ne le personnalise TabWidget en aucune façon. Voici ma définition:
<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"
>
Alors, en plus de définir noir comme ma couleur d'arrière-plan général de l'application, il n'y a pas de défintion couleur ou le style fait. La seule exception pourrait être que j'utilise ids Android standard pour TabHost et TabWidget.
/ Edit: Voici la défintion des onglets dans la méthode onCreate:
th = getTabHost();
th.addTab(th.newTabSpec("shortener").setIndicator(getString(R.string.tabShortenerName),
res.getDrawable(R.drawable.url_zip)).setContent(R.id.shortenerScrollView));
La classe étend une TabActivity.
/ Edit 2: Le dispositif qui vient avec le texte blanc sur fond blanc est en cours d'exécution Android HTC Legend 2.1 btw.
/ Edit 3: dream3r avait raison. Modification de la valeur targetSdk à 4 a fait l'affaire pour moi aussi (avant, il a été fixé à 6)! Je ne comprends pas vraiment, mais je peux vivre avec ça pour l'instant. :)
Voici une photo de la façon dont il ressemble maintenant:
La solution
Avez-vous dans votre jeu android:targetSdkVersion
AndroidManifest.xml?
J'ai fait quelques tests en utilisant l'application échantillon et j'ai le même problème si je mets targetSdkVersion
à valeur supérieure à 4
.