2011-07-16 72 views
1

我讀Using the Action Bar和它說,」 ......如果你想使用操作欄API,比如添加標籤或修改操作欄樣式,您需要設置了android :minSdkVersion爲'11',所以你可以訪問ActionBar類。「但是,在I/O項目中,Manifest具有'7'作爲minSdkVersion。他們如何能夠做主題和標籤?我無法遵循他們正在做的事情。Android操作欄,以及I/O項目

感謝

回答

2

我認爲重要的代碼在看是在ActivityHelperActivityHelperHoneycomb。基本上,他們正在制定android:targetSdkVersion="11"和​​,然後有選擇地呼籲蜂窩(或更高版本)和自己的自定義動作條實施前的蜂窩狀新的動作條的API。

如果您還沒有用於Honeycomb之前的動作條形碼,那麼有一個名爲ActionBarSherlock的好項目,它允許您簡單地使用ActionBar API並使其在Honeycomb之前工作(只需更改一些導入)。

注:如果你決定使用ActionBarSherlock並升級您的環境中使用新發布的API級別13R1或12R2代碼確保使用版本3.0.3或更高版本(更多信息here)。

編輯:多一點背景,以便更好地回答你的問題。設置android:targetSdkVersion="11"足以讓你訪問到ActionBar類。設置android:targetSdkVersion="7"允許對蜂窩式預設備上運行的應用程序,但調用從他們ActionBar代碼將導致NoClassDefFoundError(或者NoSuchMethodError?)。

爲了避免這種情況,他們使用ActivityHelper對API層級API水平< 11和ActivityHelperHoneycomb> = 11 ActivityHelper#createInstance(Activity)是他們決定使用哪一種。

+0

感謝我的延遲響應和遺憾。我想出了很多。看起來,非蜂窩操作欄沒有菜單溢出。據我所知,I/O應用程序最多隻有3個菜單項。並且整個應用程序的菜單按鈕被禁用。我錯過了溢出的地方?我想知道如何處理3個以上的菜單項。我討厭必須啓用手機菜單... – Metallicraft