1. 程式人生 > >Action Bar

Action Bar

con itl 我們 定義主題 tab 目的 html mage 都在

文章參考:Android官方培訓課程中文版

  Action Bar是我們可以為activity實現的最重要的設計元素之一。其提供了多種 UI 特性,可以讓我們的 app 與其他 Android app 保持較高的一致性,從而為用戶所熟悉。核心的功能包括:

  • 一個專門的空間用來顯示你的app的標識,以及指出目前所處在app的哪個頁面。
  • 以一種可預見的方式訪問重要的操作(比如搜索)。
  • 支持導航和視圖切換(通過Tabs和下拉列表)

  總結一下:Action bar就是替換3.0以前的tittle bar和menu。

添加Action Bar

  最基本的Action Bar:僅僅包含一個 app icon 和 Activity 標題

    技術分享

  從Android 3.0(API lever11)開始,Action bar被包含在所有的使用Theme.Hole主題的Activity(或者是這些Activity的子類)中,當 targetSdkVersion 或 minSdkVersion 屬性被設置成 “11” 或更大時,它是默認主題。

  所以,要添加action bar,只需簡單地設置屬性為11或者更大,例如

<manifest ... >  
    <uses-sdk android:minSdkVersion="11"  
          />  
    ...  
</manifest>
或者:  
<manifest ... >  
    <uses-sdk android:minSdkVersion="4"  
              android:targetSdkVersion="11" />  
    ...  
</manifest>  

  註意:當為自定義主題時,要讓自定義的主題繼承Theme.Holo

     當為android 3.0以下時(Android 2.1以上),要使用Action Bar,需要加載Android Support庫。

 

刪除Action Bar

  如果不想要Action Bat,只需把Activity的主題設置為Theme.Holo.NoActionBar即可:

  <activity android:theme="@android:style/Theme.Holo.NoActionBar"> 

  或者:

  ActionBar actionBar = getActionBar();  
  actionBar.hide();  

添加操作項

  如果我們想在Action Bar中添加比較重要的操作項,如:增加搜素按鈕。以及安排不下或者不重要操作被隱藏在action overflow中。

  技術分享

在XML中添加:

  所有操作按鈕和action overflow我們都在menu資源的XML文件中定義。通過在項目的 res/menu 目錄中新增一個 XML 文件來為 action bar 添加操作。

  如果res目錄下沒有menu,之間新建一個文件夾命名為menu即可。想要為action bar新增一個操作項,就是添加一個<item>元素。例如:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
    <item android:id="@+id/action_search"
        android:icon="@mipmap/ic_search_light"
        android:title="@string/action_item1"
        android:showAsAction="ifRoom"
        />
    <item android:id="@+id/action_item2"
        android:title="@string/action_item2"
         />
    <item android:id="@+id/action_item3"
        android:title="@string/action_item3"
        />
</menu>

  

android:showAsAction="ifRoom" 表示當action bar有可用空間時,該操作作為一個一個操作按鈕來顯示;當值為never(默認)時,操作將一直只在 action overflow 中顯示

 

Action Bar