【Android介面實現】ActionBar使用的若干細節整理

來源:互聯網
上載者:User

標籤:actionbar   android   

    轉載請註明出處:http://blog.csdn.net/zhaokaiqiang1992

    關於ActionBar的使用,很多大神早就已經寫了非常好的文章進行了介紹,所以ActionBar的基本使用本文再贅述,今天我們主要討論一下ActionBar在使用中的一些細節問題。

    

    1.使用ActionBar的手機版本限制是什嗎?

    系統原生的ActionBar是在Android3.0(API 11)才引入的,主要用來提供一個統一風格的導覽列,來代替Activity的標題列。對於手機來說,版本只存在2.x時代和4.x時代,這是因為3.x系統是為了平板而產生的,在手機上並不存在3.x版本的系統。所以,如果使用系統原生的ActionBar,那麼軟體的最低版本支援應該是4.0(API 14)。如果我們想最低支援2.2系統,那麼原生的ActionBar就不能使用了,不過,我們可以使用第三方開源項目ActionBarSherlock,實現2.x版本的相容。這個項目的使用暫時先不介紹了,資料很多,下面是項目的Github地址:https://github.com/JakeWharton/ActionBarSherlock


    2.預設的ActionBar上面有哪些內容?

    當我們建立一個預設的4.0以上版本的APP的時候,會內建一個預設效果的ActionBar,ActionBar從功能上大體可以分為以下幾個部分



    3.Home地區顯示的是什麼內容呢?

    Home的位置預設是用來放置APP的icon的,但是這個位置,也可以用來放一個logo的圖片。icon與logo的區別在於,icon指的是APP在手機案頭的表徵圖,而logo則沒有限制,任何圖片都可以,但是為了增強使用者對品牌的認知度,logo一般使用品牌的圖片。需要注意的是,icon和logo是不能同時存在的,如果有logo,icon會被覆蓋。


    4.如何指定顯示icon還是logo?

    我們可以使用下面的方式,來制定某一個Activity的icon和logo屬性

 <activity            android:name=".MainActivity"            android:icon="@drawable/ic_launcher"            android:label="@string/app_name"            android:logo="@drawable/qr" >        </activity>

    設定好這些屬性之後,如果不做其他的額外設定,APP預設會顯示logo的圖片,如所示


    如果我們想顯示icon怎麼辦呢?

    使用下面的代碼即可

    actionBar = getActionBar();

    actionBar.setDisplayUseLogoEnabled(false);

    效果如下

    如果這兩個表徵圖我們都不想要呢?通過下面的代碼,就可以把Home的表徵圖都去掉了。

actionBar.setDisplayShowHomeEnabled(false);

        5.如何指定顯示的標題文字?

    標題文字地區用來指示當前的介面,分為主標題和副標題,我們可以通過下面的方式來設定顯示的標題

<activity            android:name=".MainActivity"            android:icon="@drawable/ic_launcher"            android:label="@string/app_name"            android:logo="@drawable/qr" >        </activity>
    當然,我們也可以在代碼中控制顯示的標題和副標題,就像下面這樣:

actionBar.setTitle("我是主標題");actionBar.setSubtitle("我是副標題");

    下面是實現的效果

    我們也可以通過下面的程式碼後置標題

actionBar.setDisplayShowTitleEnabled(false);


    6.如果在Home地區,加上向上的互動中心圖示?

    如果Home地區的點擊效果是回到上一級,那麼僅僅使用icon就不太合適了,我們可以通過下面的代碼,將Home地區加上向上的互動中心圖示,從而使得導航更加的明確

actionBar.setDisplayHomeAsUpEnabled(true);

    如下:

     加上向上的互動中心圖示之後,我們就可以接受到這個小表徵圖的點擊事件,點擊事件就在onOptionsItemSelected裡面接受,代碼如下

@Overridepublic boolean onOptionsItemSelected(MenuItem item) {// Handle action bar item clicks here. The action bar will// automatically handle clicks on the Home/Up button, so long// as you specify a parent activity in AndroidManifest.xml.int id = item.getItemId();if (id == R.id.action_settings) {return true;}if (id == android.R.id.home) {Toast.makeText(this, "點擊", Toast.LENGTH_SHORT).show();return true;}return super.onOptionsItemSelected(item);}

    因為這個位置是系統設定的,因此id就是固定的android.R.id.home,我們在onOptionsItemSelected裡面就可以接收到點擊事件,然後進行對應的邏輯處理。

    另外的一個思路是使用前面介紹的logo,把logo設定成返回的表徵圖,也可以實作類別似的效果。

   

    7.如何給ActionBara設定自訂的背景或者是顏色

    ActionBar內建的顏色只有黑色和白色,如果我們想改變ActionBar的顏色,我們可以使用圖片或者是純顏色值。

    如果使用自訂圖片,我們可以向下面這樣做

Drawable d = getResources().getDrawable(R.drawable.ic_launcher);

actionBar.setBackgroundDrawable(d);

    效果如下


    如果使用自訂的顏色,我們可以象下面這樣

 actionBar.setBackgroundDrawable(new ColorDrawable(Color.BLUE));

    效果如下所示



【Android介面實現】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.