Action bar是一个标识应用程序和用户位置的窗口功能,并且给用户提供操作和导航模式。在大多数的情况下,当你需要突出展现用户行为或全局导航的activity中使用action bar,因为action bar能够使应用程序给用户提供一致的界面,并且系统能够很好根据不同的屏幕配置来适应操作栏的外观。你能够用ActionBar的对象的API来控制操作栏的行为和可见性,这些API被添加在Android3.0(API 级别 11)中。
Action bar的主要目的是:
1. 提供一个用于识别应用程序的标示和用户的位置的专用空间。
这个空间的左边是应用的图标或logo,以及Activity的标题。但是,如果是像当前选择的标签这样的标识当前View对象的导航标签,你可以选择删除Activity的标题。
2. 在不同的应用程序之间提供一致的导航和视觉体验。
Action bar提供了用于Fragment间切换的内置导航标签。它还提供了一个用于替换导航模式或优化当前视觉效果(如按照不同条件排序的列表)的下拉列表。
3. 突出Activity的关键操作(如“搜索”、“创建”、“共享”等),并且在可预见的方法内给用户提供快捷的访问。
对于关键的用户操作,你能够通过把选项菜单项作为操作项直接放到操作栏中,从而提供快捷的访问。操作项目还能提供一个操作窗口,这个窗口给更直接的操作行为提供一个嵌入的窗口部件。没有改进成操作项的菜单项在溢出菜单中还是有效的,用户既可以使用设备上的菜单按钮(设备上有按钮的时候),也可以使用操作栏中的溢出菜单按钮(当设备上不包含菜单按钮时)来显示这些操作项目。
下面上一个简单ActionBar的代码
layout : activity_first_action_bar.xml
menu : activity_first_action_bar.xml
该例子会在附件中有源代码。
介绍一个item中的android:showAsAction选项:
这个属性可接受的值有:
1、always:这个值会使菜单项一直显示在Action Bar上。
2、ifRoom:如果有足够的空间,这个值会使菜单项显示在Action Bar上。
3、never:这个值使菜单项永远都不出现在Action Bar上。
4、withText:这个值使菜单项和它的图标,菜单文本一起显示。
android:showAsAction="always|collapseActionView表示可扩展
AndroidManifest.xml中<activity中配置 android:uiOptions="splitActionBarWhenNarrow"
会将ActionBar放到底下的界面中
Action bar的主要目的是:
1. 提供一个用于识别应用程序的标示和用户的位置的专用空间。
这个空间的左边是应用的图标或logo,以及Activity的标题。但是,如果是像当前选择的标签这样的标识当前View对象的导航标签,你可以选择删除Activity的标题。
2. 在不同的应用程序之间提供一致的导航和视觉体验。
Action bar提供了用于Fragment间切换的内置导航标签。它还提供了一个用于替换导航模式或优化当前视觉效果(如按照不同条件排序的列表)的下拉列表。
3. 突出Activity的关键操作(如“搜索”、“创建”、“共享”等),并且在可预见的方法内给用户提供快捷的访问。
对于关键的用户操作,你能够通过把选项菜单项作为操作项直接放到操作栏中,从而提供快捷的访问。操作项目还能提供一个操作窗口,这个窗口给更直接的操作行为提供一个嵌入的窗口部件。没有改进成操作项的菜单项在溢出菜单中还是有效的,用户既可以使用设备上的菜单按钮(设备上有按钮的时候),也可以使用操作栏中的溢出菜单按钮(当设备上不包含菜单按钮时)来显示这些操作项目。
下面上一个简单ActionBar的代码
import android.app.Activity; import android.os.Bundle; import android.view.Menu; import android.view.MenuInflater; import android.view.MenuItem; import android.view.View; import android.view.Window; import android.widget.Button; import android.widget.Toast; public class FirstActionBarActivity extends Activity { private Button hideShowActionBar; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getWindow().requestFeature(Window.FEATURE_ACTION_BAR); setContentView(R.layout.activity_first_action_bar); hideShowActionBar = (Button) findViewById(R.id.button_hide_show_actionbar); } public void onClick_HideShowActionBar(View view) { if (getActionBar() == null) return; if (getActionBar().isShowing()){ getActionBar().hide(); hideShowActionBar.setText("显示ActionBar"); }else{ getActionBar().show(); hideShowActionBar.setText("隐藏ActionBar"); } } @Override public boolean onCreateOptionsMenu(Menu menu) { MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.activity_first_action_bar, menu); return true; } @Override public boolean onOptionsItemSelected(MenuItem item) { Toast.makeText(this, item.getTitle(), Toast.LENGTH_LONG).show(); return super.onOptionsItemSelected(item); } }
layout : activity_first_action_bar.xml
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <Button android:id="@+id/button_hide_show_actionbar" android:layout_width="match_parent" android:layout_height="wrap_content" android:onClick="onClick_HideShowActionBar" android:text="隐藏ActionBar" /> </LinearLayout>
menu : activity_first_action_bar.xml
<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android" > <item android:id="@+id/menu_save" android:icon="@drawable/save" android:showAsAction="ifRoom|withText" android:title="保存"/> <item android:id="@+id/menu_open" android:icon="@drawable/open" android:showAsAction="ifRoom" android:title="打开"/> <item android:id="@+id/menu_search" android:icon="@drawable/search" android:showAsAction="always" android:title="保存"/> </menu>
该例子会在附件中有源代码。
介绍一个item中的android:showAsAction选项:
这个属性可接受的值有:
1、always:这个值会使菜单项一直显示在Action Bar上。
2、ifRoom:如果有足够的空间,这个值会使菜单项显示在Action Bar上。
3、never:这个值使菜单项永远都不出现在Action Bar上。
4、withText:这个值使菜单项和它的图标,菜单文本一起显示。
android:showAsAction="always|collapseActionView表示可扩展
AndroidManifest.xml中<activity中配置 android:uiOptions="splitActionBarWhenNarrow"
会将ActionBar放到底下的界面中
- FirstActionBar.zip (1.3 MB)
- 下载次数: 0
发表评论
-
2048源码(核心算法有,缺少几个anctionbar,以后补上)
2014-09-25 13:22 14532048游戏基本上有四部分组成, 1:主activity,包含 ... -
android动画效果
2014-09-24 18:06 1104前几天弄alertdialog和popupwindow的时候, ... -
AlertDialog和PopupWindow
2014-09-18 15:44 1860区别:AlertDialog是非阻塞式对话框:AlertDia ... -
基础篇--resources资源
2014-09-12 15:18 487最近一直在做java开发,偶尔敲点android代码,突然发现 ... -
多点触摸(图片缩放为例)
2014-09-01 17:22 621多点触摸的事件跟单点是大同小异的,上个图片缩放的代码,供大家参 ... -
Toast的多种样式(附带Notification)
2014-09-01 13:48 884Toast以前用的时候一直以为只有文字提示,偶然得知也有多种样 ... -
Android Adapter详解(2)
2014-08-15 14:05 10以前Adapter一直用的不是太好,经过长时间的浸淫,现在可以 ... -
BroadcastReceiver简介
2014-08-14 16:27 643BroadcastReceiver作为四大 ... -
关于Android的Service
2014-08-14 13:57 420说起来真是羞愧,以前手机经常开机的时候,不会有任何QQ消息通知 ... -
在开发过程中易出的错误
2014-08-13 16:53 3581:如果继承ListActivity,那么layout中必须有 ... -
多媒体的浅尝辄止
2014-08-12 15:57 499下面简单讲几种Android的多媒体技术,音频,视频,摄像头, ... -
Sqlite无脑使用
2014-08-11 14:56 855不会sqlite的人再也不用愁了,无脑使用,只要会粘贴复制就O ... -
android弹出框
2014-08-11 11:23 481不得不说,android自带的弹出框真心丑,而且还不好用,接下 ... -
android几种数据存储方式
2014-08-11 10:45 670android数据存储方式 1:SharedPreferen ... -
SQLiteOpenHelper和ContentProvider区别
2014-08-06 15:08 1395Android中操作数据库主要有两种方法:使用SQLiteOp ... -
xml文件解析SAX
2014-08-05 13:45 459xml文件解析:xml文件解析有四种方式, 1.DOM生成和解 ... -
Android不常用代码(1)
2014-07-31 18:07 489目录 1:Webview 2:js交互 1:Web ... -
系统窗口的调用
2014-07-31 15:46 430直接上代码吧,intent进行调用 @Override ... -
fragment简单实用及数据传递(2)
2014-07-31 15:13 2515FragmentTransaction 进行数据传递 imp ... -
fragment简单实用及数据传递(1)
2014-07-30 16:29 686Fragment的使用相关 使用Fragment时,需要继承 ...
相关推荐
1、ActionBar的简介 ActionBar位于Activity的顶部,可用来显示activity的标题、Icon、Actions和一些用于交互的View。它也可被用于应用的导航。 ActionBar 是在Android 3.0(API 11)中加入到SK中的,想在低版本中使用...
项目简介 为什么要写一个ActionBar?官方的和网上开源的那么多。 第一,先说说官方的。官方的在不同系统上的风格并不统一,自定义项太少,不能满足开发需求,所以才涌现了这么多的开源项目。 第二,网上开源的。网上...
资源名称:精通Android 3中文版内容简介:《精通Android 3》在上一版的基础上进行了全面改进,增加了Android内部构件的相关知识,介绍了线程、进程、长期运行的服务、广播接收程序和闹钟管理器。本版还介绍了更多UI...
简介 这是一个仿ios边缘右滑返回的库,效果见动图: 普通Activity,内有一个TextView 含有ListView和ViewPager的Activity 依赖 本项目已同步到Jcenter,可直接引用依赖: compile '...
简介 MDWechat 是一个能让微信 Material Design 化的 Xposed 模块. 目前只发布在了酷安上,下载地址 : coolapk 功能 实现的功能有: 主界面 TabLayout Material 化,支持自定义图标 主界面搜索 Material 化 主界面添加...
Material Design简介 Material Design是谷歌新的设计语言,谷歌希望寄由此来统一各种平台上的用户体验,Material Design的特点是干净的排版和简单的布局,以此来突出内容。 Material Design对排版、材质、配色、...
简介: 一款开源的密码管理软件,用于保存生活中遇到的各种难记或不常用的账号和密码。安全,简洁,放心,无广告。QQ账号?微信号?邮箱密码?网站通行证?种现在好了,通通提交软件来记住吧,你只是只需要画一个...
##简介 洛阳新闻网非官方客户端,设计风格遵循Android 5.0推出的Material Design,数据内容来源于。 ##主要技术点 Material Design风格的应用 对网页数据的抓取与过滤处理 下拉刷新,上拉加载更多 侧滑菜单 网络数据...
第1章 Android计算平台简介 1.1 面向新PC的全新平台 1.2 Android的历史 1.3 Dalvik VM剖析 1.4 理解Android软件栈 1.5 使用Android SDK开发最终用户应用程序 1.5.1 Android模拟器 1.5.2 ...
第1章 Android计算平台简介 1.1 面向新PC的全新平台 1.2 Android的历史 1.3 Dalvik VM剖析 1.4 理解Android软件栈 1.5 使用Android SDK开发最终用户应用程序 1.5.1 Android模拟器 1.5.2 ...