Android學習筆記(35):Android活動條

來源:互聯網
上載者:User

標籤:頻繁   oom   顯示   響應   font   ever   添加   site   guide   

在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).將選項菜單顯示在活動條上

這是為瞭解決很多手機已經不再提供Menubutton的問題。

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):設定是否將應用程式圖示轉變成可單擊的button。

 

單擊這個表徵圖時。系統會調用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學習筆記(35):Android活動條

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.