Android之ActionBar詳解 .

自android3.0來Action Bar就取代了OptionsMenu。於是就涉及了API的設置。

    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棧。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章