2012-10-24 77 views
4

我想嘗試這個funny title bar coloring,但它不爲我android中的標題/操作欄ID?

getWindow().findViewById(android.R.id.title); 

返回空工作。所以我用Hierarchy Viewer來查看它,發現這個視圖被稱爲id/action_bar。但沒有R.id.action_bar(自動完成不提供它,沒有像這樣的是R.java)。

所以我現在加倍困惑:

  • android.R.id.title有點過時了,現在(我在我的模擬器使用版本16)?
  • id/action_bar從哪裏來?
  • 什麼是建議和簡單的做法w.r.t.兼容性?

我應該得到ActionBarSherlock嗎?我原本只是想改變標題欄的顏色......並沒有被它弄糊塗了很多。

回答

1

如果您在API級別14/Android 4.0之前尋找與Android版本的兼容性,我會推薦使用ActionBarSherlock。

更改ActionBar的背景很簡單,最容易通過樣式完成。請參閱http://android-developers.blogspot.com/2011/04/customizing-action-bar.html的「背景」部分

您也可以通過代碼對其進行更改。把這個在您的onCreate()

GradientDrawable gradientDrawable = new GradientDrawable(GradientDrawable.Orientation.TOP_BOTTOM, new int[] {Color.RED, Color.GREEN}); 
getActionBar().setBackgroundDrawable(gradientDrawable); 

下面是該代碼的行動截圖:

enter image description here

+0

作爲louielouie說,你可以在任何XML或Java做,但XML是首選這樣的樣式是因爲Android會在您的活動仍在加載時應用您的樣式,所以自定義樣式不會被延遲。 –