2010-11-30 4 views
0

Je tente de définir un arrière-plan personnalisé pour les onglets de mon TabWidget. Ils sont à peu près tous juste un tas de dégradés de forme rectangle, mais j'ai découvert qu'en définissant les drawables d'arrière-plan, il supprime le diviseur par défaut entre chaque onglet. Pour remédier à cela, j'ai utilisé une liste déroulante de calques pour superposer un diviseur au-dessus des onglets. Cependant, maintenant, cela affecte la mise en page de l'onglet lui-même, provoquant l'éloignement de l'image et de l'étiquette de texte.Définition de l'arrière-plan d'un onglet avec une mise en page pouvant être dessinée sur une liste de couches

Intended result
What I get by using a layer-list for the background

Je suis juste en utilisant cette configuration pour les arrière-plans:

TabWidget tw = mTabHost.getTabWidget(); 
for (int i = 0; i < tw.getChildCount(); i++) { 
    View v = tw.getChildAt(i); 
    v.setBackgroundDrawable(getResources().getDrawable (R.drawable.tab_background)); 
} 

Les indices pour expliquer pourquoi cela est happenings ou des suggestions sur ce que je peux faire à la place?

Répondre

1

Il semble que l'utilisation de la liste des calques en tant qu'arrière-plan réinitialise tous les paddings dans la vue à 0. Un peu non-sensuel, si l'on considère un fond dessinable, cela ne devrait affecter aucun de ces éléments. Je suppose. Sauvegarder les paddings précédents et les rétablir à ce qu'ils étaient auparavant résout le problème.

Questions connexes