2011-04-26 3 views
2

Je fais l'application Android en utilisant Tab Host. Je veux changer la couleur d'arrière-plan au lieu de donner la couleur par défaut du système d'exploitation Android. Je google ce problème j'ai eu une solution et j'ai fait le codage.Comment changer la couleur de fond de TabHost

for (i = 0; i < mTabHost.getTabWidget().getChildCount(); i++) { 
     mTabHost.getTabWidget().getChildAt(i).setBackgroundColor(Color.LTGRAY); 
     } 
    mTabHost.getTabWidget().getChildAt(mTabHost.getCurrentTab()).setBackgroundColor(Color.parseColor("#000000")); 

Dans ce code, le premier onglet change de couleur chaque fois que je clique sur l'autre (onglet suivant) Tab la couleur ne change pas. Si quelqu'un a une idée de ce problème particulier, veuillez me guider.

Répondre

1

TabWidget tw = tabHost.getTabWidget(); tw.setBackgroundDrawable(getResources().getDrawable(R.drawable.xxxxxx));

// et vous devez remplacer
public void onTabChanged(String tabId) {
Activity activity = getLocalActivityManager().getActivity(tabId);
if (activity != null) {
activity.onWindowFocusChanged(true);
}
}

2

vous devez ajouter un écouteur à votre tabHost, sth. comme

mtabHost.setOnTabChangedListener(new OnTabChangeListener() { 

     @Override 
     public void onTabChanged(String tabId) { 
      setTabColor(mtabHost); 
     } 
}); 

où setTabColor() contient votre code.

1

En raison des états et des sélecteurs, cela est plus compliqué que vous pourriez penser. J'ai trouvé le site suivant utile lors de la personnalisation des onglets avant: http://joshclemm.com/blog/?p=136

Questions connexes