Android ActionBar使用介紹

來源:互聯網
上載者:User

一、什麼是ActionBar

        有圖有真相,看一片就瞭解的差不多了

                                 

             對於大多數應用,操作欄可以分割為 4 個不同的功能區域。


            1. 應用表徵圖

                應用表徵圖是您應用的標誌。在應用表徵圖位置擺放您自己的 logo。注意: 如果當時應用不再頂層介面,那麼在表徵圖左邊放置一個向左的箭頭,表示“向上”按鈕,使使用者可以回到上一級介面。“向上”按鈕的更多細節,請查看 導航 - Navigation 一節。

 

應用表徵圖以及有和沒有“向上”按鈕的狀態。

             2. 視圖控制

如果您的應用通過多個不同的視圖顯示資料,這個地區將允許使用者切換視圖。可以使用下拉式功能表或者標籤控制項來實現。

如果您的應用沒有多個視圖,您可以在這裡顯示不可操作的內容,例如標題或者品牌資訊。

             3. 操作按鈕

顯示您應用中最重的操作。如果表徵圖放不下了,就自動移入“其它操作”菜單。

             4. 其它操作

將較少被用到的操作放在這個菜單裡。

 
 

 


            上面這個是google+應用,可以這樣理解,ActionBar就是方便用於導航和操作的一個類,蘋果是底部導航的風格,那安卓是頂部的風格。操作欄的主要目的是:


突出重要的操作 (例如“建立”和“搜尋”) 並且可以方便的使用。
在應用內提供統一的導航和視圖切換體驗。
較少使用的功能收集到其它操作菜單中,減少介面上的雜亂布局。
為您的應用提供一個展示其特點的空間。
二、如何使用ActionBar

        從Android3.0(API層級11)開始,Action Bar包括在所有Activity中使用的Theme.Holo主題(或是繼承Activity的一個子類),如果你不想為一個特定的Activity設定Action Bar,設定Activity主題為Theme.Holo.NoActionBar。如果想讓程式在低於3.0版本中使用ActionBar,可以使用開源組件:ActionBar Sherlock。

    1、添加操作項,什麼是操作項,看圖:就是紅線指定的地方,對應的布局檔案是menu檔案夾下的xml。在activity中這樣使用:


 

@Override public boolean onCreateOptionsMenu(Menu menu) {     // Inflate the menu; this adds items to the action bar if it is present.      getMenuInflater().inflate(R.menu.main, menu);     return true; }  @Override public boolean onCreateOptionsMenu(Menu menu) {  // Inflate the menu; this adds items to the action bar if it is present.  getMenuInflater().inflate(R.menu.main, menu);  return true; }  

   是不是很眼熟,上面的總結一下:Actionbar就是替換3.0以前的tittle bar和menu。那如何相應菜單的點擊事件呢,和之前一樣,調用onOptionsItemSelected()方法,
 

@Override   public boolean onOptionsItemSelected(MenuItem item) {     switch (item.getItemId()) {     case R.id.menuitem1:       Toast.makeText(this, "Menu Item 1 selected", Toast.LENGTH_SHORT)           .show();       break;     case R.id.menuitem2:       Toast.makeText(this, "Menu item 2 selected", Toast.LENGTH_SHORT)           .show();       break;      default:       break;     }      return true;   }  @Override  public boolean onOptionsItemSelected(MenuItem item) {    switch (item.getItemId()) {    case R.id.menuitem1:      Toast.makeText(this, "Menu Item 1 selected", Toast.LENGTH_SHORT)          .show();      break;    case R.id.menuitem2:      Toast.makeText(this, "Menu item 2 selected", Toast.LENGTH_SHORT)          .show();      break;    default:      break;    }    return true;  }     這樣就可以操作actions,下面看一下menuxml檔案,[java] view plaincopyprint?<menu xmlns:android="http://schemas.android.com/apk/res/android" >      <item         android:id="@+id/action_settings"         android:orderInCategory="100"         android:showAsAction="never"         android:title="@string/action_settings"/>     <item         android:id="@+id/nba"         android:orderInCategory="100"         android:showAsAction="ifRoom"         android:title="@string/nba"/>     <item         android:id="@+id/footbal"         android:orderInCategory="100"         android:showAsAction="never"         android:icon="@drawable/ic_launcher"         android:title="@string/footbal"/>  </menu> <menu xmlns:android="http://schemas.android.com/apk/res/android" >    <item        android:id="@+id/action_settings"        android:orderInCategory="100"        android:showAsAction="never"        android:title="@string/action_settings"/>    <item        android:id="@+id/nba"        android:orderInCategory="100"        android:showAsAction="ifRoom"        android:title="@string/nba"/>    <item        android:id="@+id/footbal"        android:orderInCategory="100"        android:showAsAction="never"        android:icon="@drawable/ic_launcher"        android:title="@string/footbal"/>

</menu>    需要注意的是, android:showAsAction這個屬性,他有幾個數值,每一個數值代表意思都不一樣,使用時候看一下。而且,actions的顯示位置是和螢幕大小相關聯的。


    2、隱藏Navigation,Navigation就是這個東西,,在手機上,有的是以實體鍵形式存在的,這個是裝置自己設定的。利用下面代碼就可以把這個Navigation取消:


 

getWindow().   getDecorView().   setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);  getWindow().  getDecorView().  setSystemUiVisibility(View.SYSTEM_UI_FLAG_HIDE_NAVIGATION);  

   3、ActionBar非常實用的一個功能就是返回上一層介面

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.