1) 設置<uses-sdk android:minSdkVersion="4" android:targetSdkVersion="11" />,表明應用程序可部署於android3.0或之前。也就是說當設備的SdkVersion==11時,應用程序將啓動Action Bar。
但是如何應用程序想使用Action Bar API,即訪問ActionBar類。例如:添加tab、改變Action Bar風格,我們需要將minSdkVersion也設置成11。
2) 如何讓你的Activity不使用ActionBar呢?
i. 設置:<activity android:theme="@android:style/Theme.Holo.NoActionBar">
ii. i中的主題是系統自帶的主題,即去掉了ActionBar的主題。如果我們自定義主題,如何取消ActionBar呢?
在自定義的主題中,使用android:windowActionBar,並將它設置成false。
3) 值得注意的是,當用2)的方法刪除了ActionBar後,在Activity中調用getActionBar()將返回null。
否則正常情況下返回ActionBar對象,然後調用show、hide操作。
4) 定義了OptionsMenu之後,我可以選擇幾個MenuItem優先顯示在Action Bar。
i. 在menu資源中:使用android:showAsAction屬性,設置成ifRoom。
ii. 代碼中:MenuItem .setShowAsAction(SHOW_AS_ACTION_IF_ROOM)
5) 通常MenuItem是帶有Icon和text屬性,作用是提示用戶識別MenuItem。當兩者都提供時,Action Bar默認顯示Icon。如果想顯示文本的話,需要
i. 在menu資源中:使用android:showAsAction屬性,設置成ifRoom | withText。
ii. 代碼:MenuItem .setShowAsAction(SHOW_AS_ACTION_IF_ROOM | SHOW_AS_ACTION_WITH_TEXT)
6) 如果應用程序在某個Fragment中添加MenuItem,當點擊該MenuItem的處理步驟是這樣,Activity本身先處理,然後纔會到Fragment。
7) 默認情況下,Action Bar會在最左側添加應用程序圖標,當點擊該圖標與點擊MenuItem的效果是一致的,此時返回的id是android.R.id.home。同樣也是在onOptionsItemSelected中處理。
i. 通常的處理是返回首頁,結束冗長的Activity棧。