Android ActionBar使用介紹

一、什麼是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非常實用的一個功能就是返回上一層界面

 

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *