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;如果沒有那麼就是自定義的佈局

結語

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

發佈了21 篇原創文章 · 獲贊 4 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章