Question

J'ai une application qui cible le cadre 1.5 et utilise le thème de la lumière par défaut. Lorsque vous utilisez un widget onglet avec ce thème, les images de l'onglet sont à peine visibles, et les sous-titres de l'onglet sont tout à fait impossible de discerner, à l'exception de l'onglet actif.

Dans le thème par défaut sombre ces onglets sont très clairement à travers, mais ce n'est pas une solution, je serais très heureux. Est-il un cadre simple que je peux définir, qui met en place le widget onglet pour une meilleure visibilité dans les thèmes légers, ou devrais-je manipuler des images et des styles de texte manuellement?

Était-ce utile?

La solution

ce n'est pas assez, mais vous pouvez essayer cette activité dans votre onglet.

// light theme support
final TabHost tabHost = getTabHost();
tabHost.setBackgroundColor(Color.WHITE);
tabHost.getTabWidget().setBackgroundColor(Color.BLACK);

// hack to set font size
LinearLayout ll = (LinearLayout) tabHost.getChildAt(0);
TabWidget tw = (TabWidget) ll.getChildAt(0);

// first tab
RelativeLayout rllf = (RelativeLayout) tw.getChildAt(0);
lf = (TextView) rllf.getChildAt(1);
lf.setTextSize(21);
lf.setPadding(0, 0, 0, 6);

// second tab
RelativeLayout rlrf = (RelativeLayout) tw.getChildAt(1);
rf = (TextView) rlrf.getChildAt(1);
rf.setTextSize(21);
rf.setPadding(0, 0, 0, 6);

/res/values/colors.xml doit avoir

<resources>
    <drawable name="black">#ff000000</drawable>
    <drawable name="white">#ffffffff</drawable>
</resources>

AndroidManiest.xml devrait avoir

<application android:theme="@android:style/Theme.Light">

si vous voulez faire quelque chose plus fou, essayez http: // ezmobile.wordpress.com/2009/02/02/customized-android-tabs/

Autres conseils

Ceci est un bogue; pouvez-vous signaler dans le le tracker d'émission ?

AFAIK, votre solution de contournement de personnaliser les styles de texte et d'image sonne juste.

Il est également à noter que le widget onglet 2.0 ne semble pas avoir un style léger.

En utilisant l'outil hierarchyviewer j'ai trouvé l'id android pour le textview dans l'onglet. Une meilleure façon de modifier les propriétés du texte (y compris la couleur) est en procédant comme suit ...

TabWidget tw = (TabWidget)tabHost.findViewById(android.R.id.tabs);
View tabView = tw.getChildTabViewAt(0);
TextView tv = (TextView)tabView.findViewById(android.R.id.title);
tv.setTextSize(20);

Une façon très simple pour résoudre le problème de couleur / contraste dans la mise en page:

<TabWidget
   android:id="@android:id/tabs"
   android:background="#FF000000"
   android:padding="2dp"

Ceci définit l'arrière-plan de la TabWidget en noir et ajoute un peu de rembourrage de sorte que vous avez contraste avec les onglets sur le fond noir. Ses pas parfait, mais fonctionne à 1,5, 2,2, lumière et thème sombre.

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