1. 程式人生 > >ActionBar的使用,設定和自定義

ActionBar的使用,設定和自定義

前言

ActionBar是我們google在3.0以後推出的推薦使用的標題欄,它靈活多變,非常好用,現在我們就來一起學習下吧。

配置主題

要想使用ActionBar,必須在主題裡配置使用ActionBar的主題(可以在單個的Activity中配置,也可以在Application中配置),@style/Theme.AppCompat的子類,除了NoActionBar的,或者直接使用系統預設的AppTheme

xml檔案配置

這裡寫圖片描述

id,不用說了

title是設定選項的名字

showAsAction是定義此item在ActionBar中的位置,常用的有

  • never 永遠不會在標題欄上直接顯示,必須手動點選選單才會顯示
  • ifRoom 如果有空間就會在標題欄上顯示,如果沒有就需要手動點選選單才會顯示
  • always 永遠都在標題欄顯示
    這裡需要說一下:標題欄的選單按鈕,如果你的手機沒有自帶選單按鈕,那麼在標題欄的最右邊就會有3個豎直排列的小點;如果你的手機自帶了,那麼選單按鈕就是你手機上自帶的那個
    ####orderInCategory:決定每個Item的次序

程式碼中載入選單檔案

@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.main, menu);
        return
super.onCreateOptionsMenu(menu); }

程式碼中設定點選事件

 @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        int itemId = item.getItemId();
        switch (itemId){
            case R.id.setting1:
                Toast.makeText(NormalActionBarActivity.this, "設定1", Toast.LENGTH
_SHORT).show(); break; case android.R.id.home: Toast.makeText(NormalActionBarActivity.this, "我是Home", Toast.LENGTH_SHORT).show(); break; } return super.onOptionsItemSelected(item); }

android.R.id.home是系統預設的最左邊的圖示

在程式碼中設定ActionBar

ActionBar supportActionBar = getSupportActionBar();
        if (supportActionBar == null) {
            return;
        }
        supportActionBar.setTitle("標題");//設定標題
        supportActionBar.setIcon(R.mipmap.ic_launcher);//設定圖示
        supportActionBar.setDisplayShowTitleEnabled(true);//是否隱藏標題
        supportActionBar.setDisplayShowHomeEnabled(true);  //是否隱藏左側的圖示
        supportActionBar.setDefaultDisplayHomeAsUpEnabled(true);
        //是否隱藏最左邊的返回鍵,在API23上我沒有顯示出來,也不知道為什麼

注意:如果你的Activity繼承的是ActionBarActivity或者是AppCompatActivity那麼就要getSupportActionBar(),否則獲取不到ActionBar

自定義標題欄

ActionBar提供了自定義標題欄樣式的方法,而且也非常簡單

mActionbar.setCustomView(R.layout.activity_middleactionbar);
mActionbar.setDisplayShowCustomEnabled(true);        mActionbar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM);

你只需要寫好佈局檔案就可以得到你想要的樣式了

鑑別是否是ActionBar的方法

長按標題欄的按鈕,如果會彈出提示框,那麼就是ActionBar;如果沒有那麼就是自定義的佈局

結語

應該是我第一次寫原創的文章吧,寫得不好多多見諒,可以留言提問。另外,希望看到的人都來寫部落格吧,對自己可以加深理解,還可以方便他人。