转载请注明出处:http://blog.csdn.net/yangyu20121224/article/details/9042387  

由于是刚开始写博客,所以一开始在格式上也没有太在意,今天偶然间翻阅自己的博客,却发现字体、代码以及图片什么的都几乎快挤到了一起,自己都觉得看着很难受,更别说别的读者了。为了大家能够读的清楚、看的明白,今天博主稍微花了一点时间把这个专题前几期文章的标题和格式全都改了一遍。希望读者们继续支持,你们的支持也是我最大的动力!

一、ActionBar介绍

在Android 3.0中除了我们重点讲解的Fragment外,Action Bar也是一个非常重要的交互元素,Action Bar取代了传统的tittle bar和menu,在程序运行中一直置于顶部,对于Android平板设备来说屏幕更大它的标题使用Action Bar来设计可以展示更多丰富的内容,方便操控。

二、ActionBar的功能

用图的方式来讲解它的功能

<1> 可显示软件图标,也可用其他图标代替。当软件不在最高级页面时,图标左侧会显示一个左箭头,用户可以通过这个箭头向上导航;

<2> 如果你的应用要在不同的View中显示数据,这部分允许用户来切换视图。一般的作法是用一个下拉菜单或者是Tab选项卡。如果只有一个界面,那这里可以显示应用程序的标题或者是更长一点的商标信息;

<3> 这里放重要的按钮功能,为用户进行某项操作提供直接的访问;

<4> 放不下的按钮会被置于“更多...”菜单项中,“更多...”菜单项是以下拉形式实现的。

三、使用ActionBar注意事项

1、得到ActionBar

在Android 3.0及更高的版本中,Activity中都默认包含有ActionBar组件。一个应用被认为是基于Android 3.0的标识是在AndroidManifest中的<uses-sdk>标签中设置了android:minSdkVersion或者android:targetSdkVersion属性值为11或者更大值时,此时的应用被系统认为是Android 3.0上的应用。

[html] view plaincopy
  1. <span style="font-size:12px;"><manifest xmlns:android="http://schemas.android.com/apk/res/android"
  2. package="com.example.helloworld"
  3. android:versionCode="1"
  4. android:versionName="1.0">
  5. <uses-sdk android:minSdkVersion="4"
  6. android:targetSdkVersion="11" />
  7. <application ... >
  8. ...
  9. </application>
  10. </manifest>
  11. </span>

2、取消ActionBar

      如果需要隐藏Action Bar可以在你的Activity的属性中设置主题风格为NoTitleBar在你的manifest文件中,下面的代码在3.0以前是隐藏标题,而在3.0以后就是隐藏ActionBar了,代码为:

[html] view plaincopy
  1. <span style="font-size:12px;"><activity android:theme="@android:style/Theme.NoTitleBar"></span>

还有一种做法,在运行时调用hide()方法也可以隐藏ActionBar,调用show()方法来显示ActionBar()。例如:

[java] view plaincopy
  1. ActionBar actionBar = getActionBar();
  2. actionBar.hide();

当你隐藏ActionBar时,系统会将Activity的整个内容充满整个空间。

注意:如果使用一个主题(theme)来移除Activity上得ActionBar,那么窗口将不再会有ActionBar,因此在运行时也就没有办法来添加ActionBar——调用getActionBar()方法会返回null值。

四、示例效果图

五、项目目录结构

六、详细代码编写

1、在menu的layout布局文件中添加一个活动条目Action Items和一个活动视图Action View,main.xml:

[html] view plaincopy
  1. <span style="font-size:12px;"><menu xmlns:android="http://schemas.android.com/apk/res/android" >
  2. <item
  3. android:id="@+id/menu_add"
  4. android:icon="@drawable/ic_title_share_default"
  5. android:showAsAction="ifRoom|withText"
  6. android:title="分享"/>
  7. <item
  8. android:id="@+id/menu_search"
  9. android:actionViewClass="android.widget.SearchView"
  10. android:showAsAction="ifRoom"
  11. android:title="Search"/>
  12. </menu></span>

2、主界面类,MainActivity.java:

[java] view plaincopy
  1. package com.yangyu.myactionbar;
  2. import android.app.ActionBar;
  3. import android.app.Activity;
  4. import android.os.Bundle;
  5. import android.view.Menu;
  6. import android.view.MenuItem;
  7. public class MainActivity extends Activity {
  8. @Override
  9. protected void onCreate(Bundle savedInstanceState) {
  10. super.onCreate(savedInstanceState);
  11. setContentView(R.layout.activity_main);
  12. ActionBar actionBar = this.getActionBar();
  13. actionBar.setDisplayOptions(ActionBar.DISPLAY_HOME_AS_UP, ActionBar.DISPLAY_HOME_AS_UP);
  14. }
  15. @Override
  16. public boolean onCreateOptionsMenu(Menu menu) {
  17. getMenuInflater().inflate(R.menu.main, menu);
  18. return true;
  19. }
  20. @Override
  21. public boolean onOptionsItemSelected(MenuItem item) {
  22. switch (item.getItemId()) {
  23. case android.R.id.home:
  24. // 当ActionBar图标被点击时调用
  25. System.out.println("点击了Home按钮!");
  26. break;
  27. }
  28. return super.onOptionsItemSelected(item);
  29. }
  30. }

注意:调用getActionBar方式在你的Activity的onCreate中时需要注意必须在调用了setContentView之后。

好了,今天就写到这里吧,依然是以一个简单的示例来练练手,后面会继续更加深入的讲解关于ActionBar的更多的用法。

代码下载地址

【Android UI设计与开发】第10期:顶部标题栏(一)ActionBar详细概述和简单示例相关推荐

  1. 【Android UI设计与开发】4.底部菜单栏(一)Fragment介绍和简单实现

    TabActivity在Android4.0以后已经被完全弃用,取而代之的是Fragment.Fragment是Android3.0新增的概念,Fragment翻译成中文是碎片的意思,不过却和Acti ...

  2. 【Android UI设计与开发】9:滑动菜单栏(一)开源项目SlidingMenu的使用和示例-转...

    一.SlidingMenu简介 相信大家对SlidingMenu都不陌生了,它是一种比较新的设置界面或配置界面的效果,在主界面左滑或者右滑出现设置界面效果,能方便的进行各种操作.很多优秀的应用都采用了 ...

  3. 【Android UI设计与开发】第02期:引导界面(二)使用ViewPager实现欢迎引导页面

    转载请注明出处:http://blog.csdn.net/yangyu20121224/article/details/8980917 本系列文章都会以一个程序的实例开发为主线来进行讲解,以求达到一个 ...

  4. android ui设计与开发工具,Android用户体验与UI设计

    Android用户体验与UI设计 编辑 锁定 讨论 上传视频 本词条缺少概述图,补充相关内容使词条更完整,还能快速升级,赶紧来编辑吧! 本书是一部介绍Android用户体验.UI设计理念和方法论的作品 ...

  5. 【Android UI设计与开发】第09期:底部菜单栏(四)Fragment+PopupWindow仿QQ空间最新版底部菜单栏

    转载请注明出处:http://blog.csdn.net/yangyu20121224/article/details/9023451          在今天的这篇文章当中,我依然会以实战加理论结合 ...

  6. 【Android UI设计与开发】第05期:引导界面(五)实现应用程序只启动一次引导界面

    转载请注明出处:http://blog.csdn.net/yangyu20121224/article/details/8987342  这篇文章算是对整个引导界面开发专题的一个终结了吧,个人觉得大部 ...

  7. 【Android UI设计与开发】第01期:引导界面(一)ViewPager介绍和使用详解

    转载请注明出处:http://blog.csdn.net/yangyu20121224/article/details/8980917 做Android开发加起来差不多也有一年多的时间了,总是想写点自 ...

  8. 【Android UI设计与开发】第13期:顶部标题栏(四)自定义ActionBar风格和样式

    转载请注明出处:http://blog.csdn.net/yangyu20121224/article/details/9087941   这篇文章将对ActionBar专题前面几篇学习过的内容做一个 ...

  9. 【Android UI设计与开发】第11期:顶部标题栏(二)ActionBar实现Tab选项卡和下拉导航列表

    转载请注明出处:http://blog.csdn.net/yangyu20121224/article/details/9050573  在上一篇文章中,我们只是大概的了解了一下关于ActionBar ...

最新文章

  1. 制作灵动单片机MM32F3277 测试版
  2. 量子位「MEET 2021智能未来大会」来啦!邀智能科技企业共探明日行业新格局
  3. 混沌系统 matlab仿真分析
  4. 利用Maya进行论文中网格动画数据的渲染
  5. Leetcode题库 172.阶乘后的零(C实现)
  6. 百度的html代码是什么,百度网页源代码是什么?
  7. 戴尔XPS-13超级本赏析
  8. GitLab的CICD配置文件.gitlab-ci.yml
  9. 外汇交易所巨头 Travelex 遭攻击暂停服务,详情不明
  10. bzoj 1263: [SCOI2006]整数划分
  11. 进程间通信-----管道
  12. Docker从理论到实践(八)------Docker网络基础配置
  13. Windows 10 修改域用户密码
  14. AIDA64内存与缓存测试过了算稳定吗_【AMD R52600X】装机实录、基本特性介绍及性能测试...
  15. 谁没有迟疑 彷徨的时候 --leo谈应届生求职 1
  16. 直播软件搭建直播服务架构
  17. java http请求发送unicode_c++ 使用httpclient获取网页及utf8与unicode之间转码
  18. udp通信2--多发多收
  19. 机器学习部分书籍推荐
  20. 2345浏览器如何显示浏览器推送内容

热门文章

  1. Intellij IDEA 中无法下载 Cloud Toolkit 问题解决
  2. jquery ready 与资源加载顺序
  3. 监控io性能, free命令, ps命令, 查看网络状态, linux下抓包
  4. 利用Java自带的MD5加密java.security.MessageDigest;
  5. 通过tomcat实现多域名配置
  6. 虚拟化,可实现国产化替代
  7. 滑动换屏——Fragment
  8. RabbitMQ安装和运行
  9. vue父子组件写法,数据传递,顺便封装 element-ui的弹窗组建
  10. com.alibaba.fastjson.JSONObject循环给同一对象赋值会出现$ref:$[0]现象问题