文章插图
一、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
只有 tab 导航的action bar的实现
步骤:建几个 fragment -->实现 tabListener -->MainActivity中添加tab到action bar
关键代码
//tabListener实现类部分代码@Overridepublic 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);}@Overridepublic 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=https://www.isolves.com/it/cxkf/ydd/Android/2019-10-15/".MainActivity">//子Activity代码if(NavUtils.getParentActivityName(this) != null){//这里是开启 ActionBar 的返回的图标getSupportActionBar().setDisplayHomeAsUpEnabled(true);}二、消息 & 通知 & 广播1.Toast显示消息提示框
2.AlertDialog实现对话框(四种)
- 普通对话框(有取消和确定按钮)
- 列表对话框
- 单选对话框
- 多选对话框
分享给大家的资料包括高级架构技术进阶脑图、Android开发面试专题资料,还有高级进阶架构资料包括但不限于【高级UI、性能优化、移动架构师、NDK、混合式开发(ReactNative+Weex)微信小程序、Flutter等全方面的Android进阶实践技术】希望能帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也是可以分享给身边好友一起学习的!
【Android 开发:ActionBar & 消息 & 通知 & 广播全在这篇】
推荐阅读
- 为什么很多看起来不是很复杂的网站,都需要大量顶尖高手来开发?
- 如何快速搭建日志系统
- |汽车研发技术工程师:电池管理系统BMS软件开发与测试专题,技术要点
- C 语言实现的跨平台开发库 TBOX
- 什么是编译器?什么是集成开发环境?一文讲明白
- 安卓反编译就这么简单
- 由ibm公司研制开发的操作系统 ibm公司的兴衰史案例答案
- Mac平台手机网站创建开发软件
- 开发中常见的Oracle三大故障与调优方法
- 基于ThinkPHP5.1.34 LTS开发的快速开发框架DolphinPHP