2011-10-06 76 views
0

當Android版本支持使用下面發佈的代碼時,我更改標題欄。但是,一旦活動實際加載後,我似乎無法更改標題欄的顏色。在活動加載後更改Android標題欄顏色*

請看下面的例子:

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); 

佈局很簡單,只包含一個背景佈局,一個TextView來顯示應用程序的標題。

我已經嘗試使用setBackbroundResrouce設置背景資源,但一直未能獲得更改的標題出現。我在嘗試更改後也試圖使佈局無效。

回答

1

只是一個想法:你是否嘗試設置你的文本視圖(而不是佈局)的背景?

奇怪的...只是嘗試,它爲我工作得很好:

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); 
     } 
    } 

中的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

沒有,但我不相信它會幫助...文本視圖的layout_width設置爲wrap_content –

+0

爲什麼不能?更好地檢查,並確保只是相信:) – slkorolev

+0

謝謝,我剛剛嘗試過,它並沒有幫助。 –