Android學習筆記(35):Android活動條
在Android3.0之後,Google對UI導航設計上進行了一系列的改革,其中有一個非常好用的新功能就是引入的ActionBar,用於取代3.0之前的標題欄,並提供更為豐富的導航效果。
ActionBar可以顯示應用圖示和Activity標題,還有Action Item活動項。
ActionBar的主要用途:
1.可以設定該Activity的圖示和標題。
2.可以配合Fragment用標籤或是下拉選單實現不同頁面的導航。
3.可以新增Action View為使用者提供快捷的訪問。
啟用ActionBar:
(1).高於Android3.0的版本都是預設啟用ActionBar的。我們會發現新建的Activity預設繼承自ActionBarActivity。如果希望關閉ActionBar,我們可以把主題設定為Xxx.NoActionBar。像下面這樣:
<activity android:theme=”@android:style/Theme.Holo.NoActionBar”>
(2).我們也可以通過在程式碼中呼叫show()或者hide()方法來相應的顯示或者隱藏ActionBar
.在我們使用actionBar.hide()方法時,系統預設會將ActionBar佔用的空間分配給介面,此時顯示的介面將會重新繪製。同樣呼叫actionBar.show();時也會重新繪製介面。如果我們一個程式需要頻繁的顯示或者隱藏ActionBar的話,這樣就不會有良好的效果。Google提供給一個屬性可以讓ActionBar浮在介面上,當然你可以讓ActionBar的背景為透明,這樣會有良好的體驗效果。
(3).將選項選單顯示在活動條上
這是為了解決許多手機已經不再提供Menu按鈕的問題。
MenuItem提供了setShowAsAction(int actionEnum)方法將選單項顯示在ActionBar上作為Action Item。
actionEnum可選的引數值如下:
SHOW_AS_ACTION_ALWAYS:總是將該MenuItem顯示在ActionBar上。
SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW:將該Action View摺疊成普通選單項
SHOW_AS_ACTION_IF_ROOM:但ActionBar位置足夠時顯示該MenuItem。
SHOW_AS_ACTION_NEVER:不顯示在ActionBar上
SHOW_AS_ACTION_WITH_TEXT:只顯示該MenuItem的文字在ActionBar上。
當然我們也可以修改選單項的XML檔案來將其顯示在ActionBar上,只需要修改<item…/>的android:showAsAction屬性。
當手機頂部的ActionBar空間不夠時,Android對不同的裝置有不同的處理方式,有MENU按鍵的手機會將不能顯示的選單項顯示在MENU按鍵激發的選單上,沒有MENU按鍵的手機則會在ActionBar的最後顯示一個摺疊圖示,單擊該圖示會出現剩餘的選單項。
(4).將活動條上的應用圖示轉變成可點選的圖示。
可以呼叫如下的這些方法:
setDisplayHomeAsUpEnabled(boolean showHomeAsUp):設定應用圖示是否可以點選,並在圖示上新增一個向左的箭頭,一般是用於回退到上級Activity。
setDisplayOptions(int options):控制ActionBar的顯示選項。
setDisplayShowHomeEnable(boolean showHome):設定是否顯示應用程式圖示。
setHomeButtonEnabled(boolean enabled):設定是否將應用程式圖示轉變成可單擊的按鈕。
單擊這個圖示時,系統會呼叫Activity帶有android.R.id.home ID的onOptionsItemSelected()方法。
為了能響應點選事件,我們還需要在選項選單的onOptionsItemSelected方法中增加相應的處理。
(5).在活動條上顯示Action View
我們可以通過如下兩種方式在活動條上新增普通的元件。
1.定義Action Item時使用android:actionViewClass屬性指定Action View的實現類。
2定義Action Item時使用android:actionLayout屬性指定Action View的實現類。
(6).使用ActionBar實現Tab導航
在ActionBar上顯示多個Tab標籤,單擊Tab標籤會導航到指定的Tab頁面。
實現Tab導航的步驟如下:
1.為ActionBar設定模式為Tab導航setNavigationMode(ActionBar.NAVIGATION_MODE_TABS),這個方法還可以設定引數ActionBar.NAVIGATION_MODE_LIST,那是用於實現下拉選單的。
2.呼叫ActionBar的addTab()方法,為活動條新增多個Tab標籤,併為每個Tab標籤新增事件監聽。
為了更好地展現Tab導航效果,我們常常將ActionBar和Fragment結合使用。
Fragment可以在一個Activity中建立多個頁面,具體用法後面再介紹。
(7).除了Tab導航外,我們還可以用ActionBar實現下拉式導航。具體步驟如下:
1.ActionBar設模式為下拉選單setNavigationMode(ActionBar.NAVIGATION_MODE_LIST)。
2.呼叫setListNavigationCallbacks(SpinnerAdapter adapter,ActionBar.OnNavigationListener callback)方法,為下拉選單新增多個列表項和列表項的事件監聽器。
相關文章
- Android 學習筆記雜記Android筆記
- Android學習筆記·ANRAndroid筆記
- Android學習筆記·HandlerAndroid筆記
- Android SQLite學習筆記AndroidSQLite筆記
- Android學習筆記一Android筆記
- Android學習筆記(6)Android筆記
- Android學習筆記(3)Android筆記
- Android學習筆記(4)Android筆記
- Android學習筆記(5)Android筆記
- Android學習筆記(2)Android筆記
- Android學習筆記(1)Android筆記
- Android學習筆記(8)Android筆記
- Android學習筆記(7)Android筆記
- Android GC 學習筆記AndroidGC筆記
- android學習筆記--ScannerAndroid筆記
- android學習筆記--AlarmManagerAndroid筆記
- android學習筆記二Android筆記
- android學習筆記三Android筆記
- Android學習筆記四Android筆記
- android學習筆記五Android筆記
- android學習筆記六Android筆記
- Android OpenGL 學習筆記Android筆記
- Android Linker學習筆記Android筆記
- Android學習筆記·ADBAndroid筆記
- Android 學習筆記思考篇Android筆記
- Android 學習筆記核心篇Android筆記
- Android學習筆記(五)——FragmentAndroid筆記Fragment
- Android學習筆記之IntentAndroid筆記Intent
- Android 開發學習筆記Android筆記
- Android Studio學習筆記Android筆記
- Android Gradle 學習筆記整理AndroidGradle筆記
- Android 學習筆記架構篇Android筆記架構
- Android環境搭建學習筆記Android筆記
- Android卡頓優化學習筆記Android優化筆記
- Android SDK編寫學習筆記Android筆記
- Android學習筆記-國際化Android筆記
- android開發學習筆記系列(1)-android起航Android筆記
- Android 快取工具 DiskLruCache 學習筆記Android快取筆記