2011-10-06 3 views
0

Je change la barre de titre lorsque la version d'Android prend en charge l'utilisation du code affiché ci-dessous. Mais je ne semble pas être en mesure de changer la couleur de la barre de titre une fois que l'activité a été chargée.Modifier la couleur de la barre de titre Android * après * l'activité a été chargée?

Voir l'exemple suivant:

activity.getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, R.layout.page_title); 
LinearLayout ll = ((LinearLayout)activity.getWindow().findViewById(R.id.page_title_bg)); 
ll.setBackgroundResource(R.drawable.page_title_bg_app_online); 

La mise en page est très simpliste, ne contenant qu'une mise en page d'arrière-plan et un TextView pour montrer le titre de l'application.

J'ai essayé de définir la ressource d'arrière-plan avec setBackbroundResrouce mais je n'ai pas réussi à faire apparaître le titre modifié. J'ai également essayé d'invalider la mise en page après avoir fait le changement.

Répondre

1

Juste une pensée: avez-vous essayé de définir l'arrière-plan de votre affichage de texte (pas de mise en page)?

Bizarre ... Juste essayé et cela fonctionne très bien pour moi:

boolean isTitleCustomizible; 
    try { 
     isTitleCustomizible = requestWindowFeature(Window.FEATURE_CUSTOM_TITLE); 
    } catch (Exception e) { 
     isTitleCustomizible = false; 
    } 

    super.setContentView(resId); 

    if (isTitleCustomizible) { 
     getWindow().setFeatureInt(Window.FEATURE_CUSTOM_TITLE, 
       R.layout.title_bar); 

     View root = getWindow().findViewById(R.id.toolBarRoot); 
     if (root != null) { 
      root.setBackgroundResource(android.R.drawable.editbox_background_normal); 
     } 
    } 

Le code onClick:

 private boolean toggle; 

     @Override 
     public void onClick(View v) { 
      View root = findViewById(R.id.toolBarRoot); 
      if (root != null) { 
       if (toggle) 
        root.setBackgroundResource(0); 
       else 
        root.setBackgroundResource(android.R.drawable.editbox_background_normal); 
       toggle = !toggle; 
      } 
     } 
+0

Non, mais je ne crois pas qu'il serait utile ... La vue de texte layout_width est défini sur wrap_content –

+0

Pourquoi pas? Mieux vaut vérifier et être sûr que juste croire :) – slkorolev

+0

Merci j'ai juste essayé et ça n'a pas aidé. –

Questions connexes