简介

Android3.0之后出现了ActionBar,一种全新的UI设计风格。

Android官网为了使开发者更加了解新UI设计风格,也专门给出了一个板块来介绍design的东西,其中也有ActionBar(http://developer.android.com/design/patterns/actionbar.html)。

一个简单的ActionBarDemo

1、创建一个名为ActionBarDemo的Android项目。

2、修改menu文件夹下的menu文件,目的是在ActionBar上添加两个item:

        

3、在Activity里面添加onCreateOptionsMenu方法:

@Overridepublic boolean onCreateOptionsMenu(Menu menu) {getMenuInflater().inflate(R.menu.main, menu);return true;}

这样一个最简单的ActionBarDemo就好了,运行一下如下图:


ActionBar的Overflow按钮

什么是Overflow按钮?请看下图:

怎么显示Overflow按钮?请看如下代码:

只要设置android:showAsAction为never就OK了。

但是有的手机上面设置了never之后还是显示不出来Overflow按钮,解决办法如下:

在Activity里面添加如下forceShowOverflowMenu方法,然后在onCreate里面调用。

private void forceShowOverflowMenu() {try {ViewConfiguration config = ViewConfiguration.get(this);Field menuKeyField = ViewConfiguration.class.getDeclaredField("sHasPermanentMenuKey");if (menuKeyField != null) {menuKeyField.setAccessible(true);menuKeyField.setBoolean(config, false);}} catch (Exception e) {e.printStackTrace();}}

Split Action Bar

当要显示的Action Bar Item很多而显示不下的时候,就需要使用Split Action Bar。

方法:在activity标签里面添加android:uiOptions="splitActionBarWhenNarrow"即可。

运行效果如下:

下面的两个item没有平均分配空间,如果想要平局分配,代码如下:

                    

就是在中间添加看不见的item就可以实现了。效果图如下:


Up Navigation

Up Navigation就是点击ActionBar的左边的按钮回到上一个Activity。

方法:

1、在Manifest里面添加上级Activity

                

2、Activity里面的代码如下:

@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_theme_holo);getActionBar().setDisplayHomeAsUpEnabled(true);getActionBar().setHomeButtonEnabled(true);}@Overridepublic boolean onOptionsItemSelected(MenuItem item) {switch (item.getItemId()) {// Respond to the action bar's Up/Home buttoncase android.R.id.home:NavUtils.navigateUpFromSameTask(this);return true;}return super.onOptionsItemSelected(item);}

3、运行以上代码会发现点击返回按钮的时候,画面切换的动画效果显示又创建了一个Activity,而不是回到上一个Activity。要想回到上一个Activity,只要设置activity的android:launchMode="singleTop"就OK了。

ActionBar的主题风格

可以给ActionBar设置主题风格,可以使用Android自带的Theme,也可以使用自定义的Theme。

ActionBar的主题风格(Android自带的Theme.Holo)

方法:在AndroidManifest.xml里面的activity标签里面添加android:theme="@android:style/Theme.Holo"。

android:label="@string/theme_holo_activity_name"可以设置ActionBar的title。

运行结果如下:


ActionBar、Popupmenu以及整个画面都是黑色的。

ActionBar的主题风格(Android自带的Theme.Holo.Light)

方法:将上面的主题变成Theme.Holo.Light即可。

运行结果如下:


ActionBar、Popupmenu以及整个画面都是白色的。

ActionBar的主题风格(Androd自带的Theme.Holo.Light.DarkActionBar)

方法:将上面的主题变成Theme.Holo.Light.DarkActionBar即可。

运行结果如下:

ActionBar、Popupmenu是黑色的,画面其他部分是白色的。

ActionBar的主题风格(自定义)

首先设置activity的主题为Theme.Custom


再设置Theme.Custom的内容
                        

最后在Activity里面添加如下代码:
// change action icongetActionBar().setIcon(R.drawable.ic_launcher);// set home as up button enablegetActionBar().setDisplayHomeAsUpEnabled(true);getActionBar().setHomeButtonEnabled(true);

具体代码 :http://download.csdn.net/detail/tianjf0514/6462671

更多相关文章

  1. Android(安卓)琐碎知识点汇总
  2. Android(安卓)点击Notification事件处理
  3. android之自定义组合控件
  4. Android学习笔记(24):进度条组件ProgressBar及其子类
  5. Android(安卓)4.2 JellyBean Graphic Component -- SurfaceFling
  6. Android(安卓)Studio中常用设置与快捷键(私人珍藏,Eclipse转AS必看
  7. HotApp小程序统计开发总结之设置了navigationBarBackgroundColor
  8. JNI中的本地方法添加调试信息
  9. android ListView常用知识总结

随机推荐

  1. 一个实用技巧,告别手动画图,自动生成数据库
  2. 芋道 Spring Boot MyBatis 入门(四)之 tkmy
  3. 一口气带你踩完五个 List 的大坑,真的是处
  4. 链路追踪 SkyWalking 源码分析 —— Coll
  5. 怎样切换不同版本的 Node[每日前端夜话0x
  6. Web 视频格式简明指南[每日前端夜话0x93]
  7. 芋道 Spring Boot JPA 入门(一)之快速入门
  8. 干货丨如何使用Redash连接DolphinDB数据
  9. 惊呆了!不改一行 Java 代码竟然就能轻松解
  10. 设置id从1开始自增