一、ActionBar 使用
Action Bar就是應用最上面的長方形橫條,里面的內容一般是App圖標、app的名字、菜單按鈕、tab導航等
1、顯示和隱藏ActionBar
xml方法:就是在manifest 里面設置application或者 activity 的theme屬性就可以實現顯示和隱藏(帶NoActionBar的主題)
JAVA方法:首先getSupportActionBar 獲得bar,然后調用hide 或者 show 方法即可
2、添加Action Item
和前面創建選項菜單基本是一樣的步驟,只是定義菜單的 item的時候多了一個 showAsAction的屬性,具體的屬性值參考如下
- 菜單資源文件 item 示例
3、添加Action View
就是往 ActionBar 上面添加組件
菜單資源文件示例如下:具體的view既可以通過類進行指定,也可以通過布局文件指定
說明
- actionLayout、showAsAction等的前綴都是 app 而不是 Android,需要引入相應的名稱空間
- action bar 的 setDisplayShowTitleEnabled 方法可以設置應用標題的隱藏和顯示
- getMenuInflater
4、ActionBar & tab
只有 tab 導航的action bar的實現
步驟:建幾個 fragment -->實現 tabListener -->MainActivity中添加tab到action bar
關鍵代碼
//tabListener實現類部分代碼 @Override public void onTabSelected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) { if(fragment == null){ fragment = Fragment.instantiate(activity,clazz.getName()); fragmentTransaction.add(android.R.id.content,fragment,null); } fragmentTransaction.attach(fragment); } @Override public void onTabUnselected(ActionBar.Tab tab, FragmentTransaction fragmentTransaction) { if(fragment != null){ fragmentTransaction.detach(fragment); } }
//mainActivity部分代碼 ActionBar ab = getSupportActionBar(); ab.setDisplayShowTitleEnabled(false); ab.setNavigationMode(ab.NAVIGATION_MODE_TABS); ab.addTab(ab.newTab().setText("第一頁"). setTabListener(new MyListener(AFragment.class,MainActivity.this))); ab.addTab(ab.newTab().setText("第二頁"). setTabListener(new MyListener(BFragment.class,MainActivity.this))); ab.addTab(ab.newTab().setText("第三頁"). setTabListener(new MyListener(CFragment.class,MainActivity.this)));
5、實現層級式導航
原理
不是通過intent來實現返回的 activity 跳轉
本質是設置父 Activity 集合Action Bar 的功能來實現返回
關鍵代碼
<activity android:name=".BActivity"> <meta-data android:name="android.support.PARENT_ACTIVITY" android:value=".MainActivity"></meta-data> </activity>
//子Activity代碼 if(NavUtils.getParentActivityName(this) != null){ //這里是開啟 ActionBar 的返回的圖標 getSupportActionBar().setDisplayHomeAsUpEnabled(true); }
二、消息 & 通知 & 廣播
1.Toast顯示消息提示框
2.AlertDialog實現對話框(四種)
- 普通對話框(有取消和確定按鈕)
- 列表對話框
- 單選對話框
- 多選對話框
最后
我準備了一些面試的知識匯總,數據結構,計算機網絡等等都有。自己整理和分類的,還請尊重知識產出。
分享給大家的資料包括高級架構技術進階腦圖、Android開發面試專題資料,還有高級進階架構資料包括但不限于【高級UI、性能優化、移動架構師、NDK、混合式開發(ReactNative+Weex)微信小程序、Flutter等全方面的Android進階實踐技術】希望能幫助大家學習提升進階,也節省大家在網上搜索資料的時間來學習,也是可以分享給身邊好友一起學習的!