ActionBar的使用,設定和自定義
阿新 • • 發佈:2019-02-15
前言
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;如果沒有那麼就是自定義的佈局
結語
應該是我第一次寫原創的文章吧,寫得不好多多見諒,可以留言提問。另外,希望看到的人都來寫部落格吧,對自己可以加深理解,還可以方便他人。