2010-09-14 23 views
4

L'attribut android: divider sous le TabWidget fonctionne-t-il? J'ai essayé le tutoriel Tab Layout à partir d'android juste pour tester (http://developer.android.com/resources/tutorials/views/hello-tabwidget.html) et régler l'android: divider à une image (pour l'instant j'ai utilisé la barre de défilement verticale Android comme le drawable pour vraiment souligner si son ramassé (copié des cadres), mais quand je l'ai exécuté sur l'émulateur, il ne semble pas fonctionner.Selon les docs, le TabWidget semble soutenir cet attribut: "Drawable utilisé pour dessiner le diviseur entre les onglets."diviseurs entre TabWidgets

Quelqu'un peut-il aider ? J'utilise un drawable neuf patché comme mon image diviseur drawable.

MB

+0

quelqu'un?!? :(FYI: Je suis actuellement en utilisant Android 2.1 API Niveau 7 – mbethdev

+0

Cela fonctionne bien pour moi ... Une idée de pourquoi android: divider attribut n'est pas disponible, mais toujours documenté? –

Répondre

18

Il ne ressemble pas à l'attribut divider est plus disponible pour TabWidget. Une façon d'ajouter un diviseur personnalisé est de définir par programmation:

mTabHost.getTabWidget().setDividerDrawable(R.drawable.divider_vertical_dark); 

Assurez-vous cependant, vous appelez cette avant vous définissez le contenu des onglets. Ça m'écraserait si je l'appelais après.

+2

Votre ligne "Vous appelez ceci avant de définir le contenu des onglets "est hallucinante, corrigé mon problème :) – Dharmendra

1

J'ai le même problème moi-même. Je vois seulement le problème dans Ice Cream Sandwich (ICS/4.0.x). Dans Android 1.6 - 2.3.4 il n'y a pas de problème, les diviseurs s'affichent correctement lors de la définition d'un dessin dans le code ou dans la mise en page XML. J'ai essayé à peu près tout ce que je peux penser pour le réparer mais rien ne fonctionne, y compris la réponse de Josh ci-dessus :(bien que j'ai remarqué que lorsque vous définissez un dessinable comme séparateur, il prendra l'espace entre les onglets comme s'il y avait un drawable là, mais il est tout simplement pas visible.

Espérons que donne à quelqu'un d'autre une indication quant à ce qui pourrait se produire ..?

7

J'ai eu le problème dans ICS, où diviseur était visible. Aucun des solutions exploitées, sauf:

<TabWidget 
      android:id="@android:id/tabs" 
      android:layout_width="match_parent" 
      android:layout_height="60dp" 
      android:gravity="bottom" 
      android:layout_alignParentBottom="true" 
      android:fadingEdge="none" 
      android:showDividers="none" > 
     </TabWidget> 

ligne clé était android:showDividers="none"

+0

ça marche, merci – HiMing

7

J'ai eu ce problème et résolu avec le code suivant

tabHost1.getTabWidget().setDividerDrawable(R.drawable.example1); 
if(Build.VERSION.SDK_INT >= 11) 
    tabHost1.getTabWidget().setShowDividers(TabWidget.SHOW_DIVIDER_MIDDLE); 

Pour les niveaux de api inférieur à 11, il a travaillé avec la première ligne. Pour 11 ans et plus, j'ai inclus ceci pour que cela fonctionne. setShowDividers est ajouté dans linearlayout à partir du niveau 11 d'api. Espérons que cela aide quelqu'un

+0

Merci beaucoup pour ça! Pour moi, cela ne serait pas compilé car je compilerais avec un niveau d'API plus ancien, mais cela fonctionne comme un charme lorsqu'il est modifié pour utiliser la réflexion pour invoquer la méthode. – danwilkie

0

J'ai enlevé la ligne de séparation de tabbar avec l'utilisation des lignes magiques ci-dessous.

mTabHost.getTabWidget().setDividerDrawable(null); 

OU

mTabHost.getTabWidget().setDividerDrawable(R.Color.transperant);