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:

text alt

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: text alt

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: text alt

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top