Android3.0 ActionBar導航標題欄使用解析
先看圖:

[1]是ActionBar的圖標,[2]是兩個action按鈕,[3]是overflow按鈕。
介紹:
Action Bar是一種新増的導航欄功能,在Android 3.0之后加入到系統(tǒng)的API當中,它標識了用戶當前操作界面的位置,并提供了額外的用戶動作、界面導航等功能。使用ActionBar的好處是,它可以給提供一種全局統(tǒng)一的UI界面,使得用戶在使用任何一款軟件時都懂得該如何操作,并且ActionBar還可以自動適應各種不同大小的屏幕。
添加ActionBar
1、不需要導入ActionBar,因為在android3.0或者以上版本中,ActionBar已經(jīng)默認的包含在Activity中
2、在Android3.0的默認主題“holographic”中,已經(jīng)創(chuàng)造了ActionBar
3、當android:minSdkVersion 或者 android:targetSdkVersion 屬性被設置成11或者更高時,應用會被認為是Android3.0版本(默認含有ActionBar)
二、隱藏ActionBar
1、我們可以通過把主題設置為Theme.Holo.NoActionBar為一個Activity去除掉ActionBar
<activity android:theme="@android:style/Theme.Holo.NoActionBar">
2、我們也可以通過在代碼中調用show()或者hide()方法來相應的顯示或者隱藏ActionBar
3、在我們使用actionBar.hide();方法是系統(tǒng)默認會將ActionBar占用的空間分配給界面,此時顯示的界面將會重新繪制。
同樣調用actionBar.show();時也會重新繪制界面。如果我們一個程序需要頻繁的顯示或者隱藏ActionBar的話,這樣
就不會有良好的效果。Google提供給一個屬性可以讓ActionBar浮在界面上,當然你可以讓ActionBar的背景為透明,
這樣會有良好的體驗效果。
Demo栗子:

清單文件中設置theme
<application android:name=".view.MyApp" android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:supportsRtl="true" android:theme="@style/AppTheme">
style/AppTheme
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <!-- Customize your theme here. --> <item name="colorPrimary">@color/colorPrimary</item> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="colorAccent">@color/colorAccent</item> </style>
MainActivity中初始化
/**
* 初始化標題
*/
private void initActionbar() {
ActionBar actionBar= getSupportActionBar();//獲取當前頁面的標題欄
actionBar.setTitle("Demo應用");//設置顯示標題
actionBar.setLogo(R.mipmap.ic_launcher);//設置logo標志
actionBar.setDisplayShowHomeEnabled(true);//是否顯示在主頁面上
actionBar.setDisplayUseLogoEnabled(true);//是否使用標志圖片
actionBar.setDisplayHomeAsUpEnabled(true);//返回鍵
actionBar.show();//設置后調用show顯示標題欄
}
菜單中加載布局
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.action_bar_menu,menu);
return true;
}
menu.action_bar_menu
<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <!--menu集合添加多個按鈕 showAsAction 顯示設置 always 爭取顯示 ifRoom根據(jù)剩余空間的大小來決定 ,大 就顯示 ,反之 不顯示 never 默認從來不顯示在集合外面 app:showAsAction="always"--> <item android:id="@+id/menu1" android:title="菜單1" android:icon="@drawable/action_download"/> <item android:id="@+id/menu2" android:title="菜單2" android:icon="@drawable/ic_feedback"/> <item android:id="@+id/menu3" android:title="菜單3" app:showAsAction="never" android:icon="@drawable/ic_exit"/> </menu>
提供處理標題元素的事件方法
/**
*這是Activity提供處理標題元素的事件方法,返回true消費事件
*關鍵點:android.R.id.home 是系統(tǒng)分配置的返回的id
*/
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()){
case android.R.id.home: //這個id是固定的,系統(tǒng)分配的
if(mDrawerLayout.isDrawerOpen(mMenuLayout)){
//如果是打開狀態(tài),那么點擊就關閉
mDrawerLayout.closeDrawer(mMenuLayout);
}else{
//如果是關閉狀態(tài),那么點擊就打開
mDrawerLayout.openDrawer(mMenuLayout);
}
break;
case R.id.menu1:
Toast.makeText(this, item.getTitle(), Toast.LENGTH_SHORT).show();
break;
case R.id.menu2:
Toast.makeText(MyApp.getContext(), item.getTitle(), Toast.LENGTH_SHORT).show();
break;
case R.id.menu3:
UiUtils.showToast(item.getTitle().toString());
break;
}
return super.onOptionsItemSelected(item);
}
/**
* 設置箭頭打開動畫
*/
private void initRotateArrowAnimation() {
//參數(shù)1:Activity 參數(shù)2:抽屜控件 參數(shù)3,4:string
ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(this,mDrawerLayout,R.string.open,R.string.close);
//同步狀態(tài) 作用:把返回圖標替換 2,把旋轉特效箭頭跟抽屜關聯(lián)
toggle.syncState();
//抽屜滑動的距離換成角度,使用箭頭旋轉
mDrawerLayout.addDrawerListener(toggle);
}
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關文章
Android Shape屬性創(chuàng)建環(huán)形進度條
這篇文章主要介紹了Android Shape屬性創(chuàng)建環(huán)形進度條的實例代碼,代碼簡單易懂,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2019-11-11
Android嵌套滾動與協(xié)調滾動的實現(xiàn)方式匯總
如何實現(xiàn)這種協(xié)調滾動的布局呢,我們使用CoordinatorLayout+AppBarLayout或者CoordinatorLayout+Behavior實現(xiàn),另一種方案是MotionLayout,我們看看都是怎么實現(xiàn)的吧2022-06-06
詳解Android JetPack之LiveData的工作原理
這篇文章主要介紹了詳解Android JetPack之LiveData的工作原理,幫助大家更好的理解和學習使用Android開發(fā),感興趣的朋友可以了解下2021-03-03
RecyclerView無限循環(huán)效果實現(xiàn)及示例解析
這篇文章主要為大家介紹了RecyclerView無限循環(huán)效果實現(xiàn)及示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-03-03
Android自定義View繪制貝塞爾曲線實現(xiàn)流程
貝塞爾曲線的本質是通過數(shù)學計算的公式來繪制平滑的曲線,分為一階,二階,三階及多階。但是這里不講數(shù)學公式和驗證,那些偉大的數(shù)學家已經(jīng)證明過了,所以就只講講Android開發(fā)中的運用吧2022-11-11

