【Android UI設計與開發】第10期:頂部標題列(一)ActionBar詳細概述和簡單樣本

來源:互聯網
上載者:User

標籤:android   style   blog   http   io   color   ar   os   使用   

轉載請註明出處:http://blog.csdn.net/yangyu20121224/article/details/9042387  

 

       由於是剛開始寫部落格,所以一開始在格式上也沒有太在意,今天偶然間翻閱自己的部落格,卻發現字型、代碼以及圖片什麼的都幾乎快擠到了一起,自己都覺得看著很難受,更別說別的讀者了。為了大家能夠讀的清楚、看的明白,今天博主稍微花了一點時間把這個專題前幾期文章的標題和格式全都改了一遍。希望讀者們繼續支援,你們的支援也是我最大的動力!     

 

 

一、ActionBar介紹

 

       在Android 3.0中除了我們重點講解的Fragment外,Action Bar也是一個非常重要的互動元素,Action Bar取代了傳統的tittle bar和menu,在程式運行中一直置於頂部,對於Android平板裝置來說螢幕更大它的標題使用Action Bar來設計可以展示更多豐富的內容,方便操控。 

 

 

二、ActionBar的功能

 

用圖的方式來講解它的功能

 

<1> 可顯示軟體表徵圖,也可用其他表徵圖代替。當軟體不在最進階頁面時,表徵圖左側會顯示一個左箭頭,使用者可以通過這個箭頭向上導航;

 

<2> 如果你的應用要在不同的View中顯示資料,這部分允許使用者來切換視圖。一般的作法是用一個下拉式功能表或者是Tab選項卡。如果只有一個介面,那這裡可以顯示應用程式的標題或者是更長一點的商標資訊;

 

<3> 這裡放重要的按鈕功能,為使用者進行某項操作提供直接的訪問;

 

<4> 放不下的按鈕會被置於“更多...”功能表項目中,“更多...”功能表項目是以下拉形式實現的。

 

 

三、使用ActionBar注意事項

 

1、得到ActionBar

      在Android 3.0及更高的版本中,Activity中都預設包含有ActionBar組件。一個應用被認為是基於Android 3.0的標識是在AndroidManifest中的<uses-sdk>標籤中設定了android:minSdkVersion或者android:targetSdkVersion屬性值為11或者更大值時,此時的應用被系統認為是Android 3.0上的應用。

<span style="font-size:12px;"><manifest xmlns:android="http://schemas.android.com/apk/res/android"      package="com.example.helloworld"      android:versionCode="1"      android:versionName="1.0">    <uses-sdk android:minSdkVersion="4"              android:targetSdkVersion="11" />    <application ... >        ...    </application></manifest></span>

2、取消ActionBar

      如果需要隱藏Action Bar可以在你的Activity的屬性中設定主題風格為NoTitleBar在你的manifest檔案中,下面的代碼在3.0以前是隱藏標題,而在3.0以後就是隱藏ActionBar了,代碼為:

<span style="font-size:12px;"><activity android:theme="@android:style/Theme.NoTitleBar"></span>

還有一種做法,在運行時調用hide()方法也可以隱藏ActionBar,調用show()方法來顯示ActionBar()。例如:

ActionBar actionBar = getActionBar();actionBar.hide();
當你隱藏ActionBar時,系統會將Activity的整個內容充滿整個空間。 注意:如果使用一個主題(theme)來移除Activity上得ActionBar,那麼視窗將不再會有ActionBar,因此在運行時也就沒有辦法來添加ActionBar——調用getActionBar()方法會返回null值。 四、樣本  五、項目目錄結構  六、詳細代碼編寫 1、在menu的layout布局檔案中添加一個活動條目Action Items和一個即時檢視Action View,main.xml:
<span style="font-size:12px;"><menu xmlns:android="http://schemas.android.com/apk/res/android" >    <item        android:id="@+id/menu_add"        android:icon="@drawable/ic_title_share_default"        android:showAsAction="ifRoom|withText"        android:title="分享"/>    <item        android:id="@+id/menu_search"        android:actionViewClass="android.widget.SearchView"        android:showAsAction="ifRoom"        android:title="Search"/></menu></span>

2、主介面類,MainActivity.java:

package com.yangyu.myactionbar;import android.app.ActionBar;import android.app.Activity;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;public class MainActivity extends Activity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);                ActionBar actionBar = this.getActionBar();          actionBar.setDisplayOptions(ActionBar.DISPLAY_HOME_AS_UP, ActionBar.DISPLAY_HOME_AS_UP);      }    @Override    public boolean onCreateOptionsMenu(Menu menu) {        getMenuInflater().inflate(R.menu.main, menu);        return true;    }    @Override    public boolean onOptionsItemSelected(MenuItem item) {        switch (item.getItemId()) {        case android.R.id.home:            // 當ActionBar表徵圖被點擊時調用            System.out.println("點擊了Home按鈕!");            break;        }        return super.onOptionsItemSelected(item);    }}

注意:調用getActionBar方式在你的Activity的onCreate中時需要注意必須在調用了setContentView之後。

          

      好了,今天就寫到這裡吧,依然是以一個簡單的樣本來練練手,後面會繼續更加深入的講解關於ActionBar的更多的用法。

【Android UI設計與開發】第10期:頂部標題列(一)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.