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

原创 2013年06月06日 22:23:58

转载请注明出处: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上的应用。

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="com.example.helloworld"
      android:versionCode="1"
      android:versionName="1.0">
    <uses-sdk android:minSdkVersion="4"
              android:targetSdkVersion="11" />
    <application ... >
        ...
    </application>
</manifest>

 

 

2、取消ActionBar

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

<activity android:theme="@android:style/Theme.NoTitleBar">

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

ActionBar actionBar = getActionBar();
actionBar.hide();

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

 

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

 


四、示例效果图

 



 


五、项目目录结构

 

 


六、详细代码编写

 

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

<menu xmlns:android="http://schemas.android.com/apk/res/android" >

    <item
        android:id="@+id/menu_add"
        android:icon="@drawable/ic_title_share_default"
        android:showAsAction="ifRoom|withText"
        android:title="分享"/>
    <item
        android:id="@+id/menu_search"
        android:actionViewClass="android.widget.SearchView"
        android:showAsAction="ifRoom"
        android:title="Search"/>

</menu>


2、主界面类,MainActivity.java:

package com.yangyu.myactionbar;

import android.app.ActionBar;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;

public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		ActionBar actionBar = this.getActionBar();  
		actionBar.setDisplayOptions(ActionBar.DISPLAY_HOME_AS_UP, ActionBar.DISPLAY_HOME_AS_UP);  

	}

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

	@Override
	public boolean onOptionsItemSelected(MenuItem item) {
		switch (item.getItemId()) {
		case android.R.id.home:
			// 当ActionBar图标被点击时调用
			System.out.println("点击了Home按钮!");
			break;
		}
		return super.onOptionsItemSelected(item);
	}
}

       

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

          

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




源码下载地址

 

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

转载请注明出处:http://blog.csdn.net/yangyu20121224/article/details/9042387          由于是刚开始写博客,所以一开...
  • gebitan505
  • gebitan505
  • 2013年09月29日 09:21
  • 10712

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

一、ActionBar介绍          在Android 3.0中除了我们重点讲解的Fragment外,Action Bar也是一个非常重要的交互元素,Action Bar取代了传统...
  • a809513432
  • a809513432
  • 2014年08月06日 09:54
  • 330

Android 顶部标题栏ActionBar详解

转载自http://www.cnblogs.com/yc-755909659/p/4290784.html 一、ActionBar介绍   在Android 3.0中除了我们重点讲解的Fragm...
  • liuwan1992
  • liuwan1992
  • 2016年10月15日 21:06
  • 5821

【Android UI设计与开发】8.顶部标题栏(一)ActionBar

一、ActionBar介绍   在Android 3.0中除了我们重点讲解的Fragment外,Action Bar也是一个非常重要的交互元素,Action Bar取代了传统的tittle bar和...
  • Happy_Develop_
  • Happy_Develop_
  • 2017年03月18日 18:44
  • 405

【Android UI设计与开发】第12期:顶部标题栏(三)ActionBar实现层级导航的返回效果

转载请注明出处: http://blog.csdn.net/yangyu20121224/article/details/9059459               今天...
  • gebitan505
  • gebitan505
  • 2013年09月29日 11:03
  • 4905

安卓去除标题栏,ActionBar和Notitle

如何去隐藏掉标题栏和状态栏 ActionBar Notitle
  • Avalon_nongzai
  • Avalon_nongzai
  • 2015年08月01日 15:34
  • 748

android 顶部标题栏ActionBar详解

一、ActionBar介绍   在Android 3.0中除了我们重点讲解的Fragment外,Action Bar也是一个非常重要的交互元素,Action Bar取代了传统的tittle bar和...
  • a549742320
  • a549742320
  • 2016年08月07日 15:24
  • 4057

Android ActionBar应用一:ActionBar返回任意页面和顶部搜索栏实现

使用ActionBar实现返回任意界面和顶部搜索功能
  • cyp331203
  • cyp331203
  • 2015年04月07日 19:28
  • 2995

自定义标题栏之ActionBar与“沉浸式”标题栏

标题栏对于用户导航能起到很重要的作用,也能提高用户体验,所以很多情况下,我们应用都会标题栏,但系统默认的标题栏很丑,我们应用开发一般都不会用系统默认的标题栏,都会自定义自己风格的标题栏。标题栏一般有两...
  • u012864297
  • u012864297
  • 2016年12月15日 15:12
  • 693

android简单实例---------ActionBar的简单使用(一)

上一次写了一写各种菜单的使用,今天写一下与其使用方式及其相似的ActionBar的使用方式,它与系统菜单创建的方式几乎一样,事件处理也一样,那么我们来看看基本用法把。 取消ActionBar...
  • sinat_31311947
  • sinat_31311947
  • 2016年03月06日 15:34
  • 843
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【Android UI设计与开发】第10期:顶部标题栏(一)ActionBar详细概述和简单示例
举报原因:
原因补充:

(最多只允许输入30个字)