1、什么是Action Bar
Action
Bar被认为是新版Android系统中最重要的交互元素,在程序运行中一直置于顶部,主要起到的作用在于:
1)突出显示一些重要操作(如“最新”、“搜索”等)
2)在程序中保持统一的页面导航和切换方式
3)将使用频率低的功能放在Action
overflow中,节省页面空间
4)一个固定区域显示程序标示

2、Action Bar分成四个区域
App
Icon:可显示软件icon,也可用其他图标代替。当软件不在最高级页面时,图标左侧会显示一个左箭头,用户可以通过这个箭头向上导航。
视图切换:如果你的应用要在不同的View中显示数据,这部分允许用户来切换View。一般的作法是用一个drop-down菜单或者是Tab
Controls。如果只有一个界面,那这里可以显示App Title或者更长点的商标信息
Action
Buttons:这个放最重要的软件功能,放不下的按钮就自动进入Action overflow了。
Action
overflow:把不常用的Actions移到Action overflow

3、屏幕旋转及不同分辨率适配
写一个应用时一个重要的UI
问题就是如何适应屏幕旋转和不同尺寸的屏幕。你可以通过使用split action bars来适应这种变化,
就是把action bar
内容拆分到不同的bars里,拆分后一般包含三个部分:
Main action bar:用户可以通过main action
bar导航至上一级,因此这个操作条是必须的;
Top
bar:当页面上有不同的内容视图时,可在这个条上使用TAB或spinner下拉菜单的形式切换;
Bottom
bar:要展现更多操作和功能,在页面最下端排列

4、Contextual Action Bar (CAB)

“上下文操作栏”
(contextual action bar,CAB)
是一个浮于操作栏上的临时操作栏,用来放置一些特定的子任务。“上下文操作栏”一般在项目选择和文字选择时出现。


浏览器和
Gmail 应用中的上下文操作栏

长按可选择的内容,进入选择模式,显示上下文操作栏。

此时用户可以:

  • 通过触摸选择项目。
  • 在上下文操作栏中选择操作,并应用于所有已选项目。之后上下文操作栏自动消失。
  • 通过导航栏的“返回”按钮关闭上下文操作栏,也可以通过点击上下文操作栏的选择图标关闭它。关闭上下文操作栏的同时要取消所有的选择。

当您让用户长按来选择项目时,需要使用上下文操作栏。您可以控制上下文操作栏中的图标,使用户可以执行不同的操作。

5、Action
Bar包含元素

1)Tabs
如果希望用户经常在几个部分间切换,可以使用Tabs。有两种Tabs:固定的(fixed)跟可滑动的(scrollable)
Scrollable:
经常占据整个Bar的宽度,当前的活动View在中间位置,因此需要在一个专用的Bar里。可以自己水平的scroll,来显示更多其他的view。使用
情况:如果有很多的Views或者你不确定有多少Views,因为可能是动态添加的。Scrollable
Tabs应该总是允许用户通过左右Swipe来切换Views。

Fixed Tabs:将所有标签显示在屏幕上,当方向变化时,它可能会被移动到Top bar位置去。

2)Spinners下拉框
官方给出使用spinner而不用tab的情况:
当不希望tab占据太多页面竖直方向上的空间
当用户认为不需要经常在视图之间切换时

3)Action
buttons
要分清楚哪些Action是经常使用的,并根据这个来安排它们的位置。应该显示最常用的Actions,把其他不是常用的放到overflow里。
如果一个Action在当前不被使用,把它隐藏掉,而不是显示为不能用。
使用FIT表来分辨优先级。如果FIT中有一个适用,就把它放到Action
bar,否则就放到Action overflow里。
F – Frequent
高频
当用户在这个页面时,是否10次中至少有7次会使用这个按钮?
用户是否通常要连续使用很多次?
如果每次使用该功能都要多一步操作,会不会很繁琐?
I
– Important
重要
你是否希望每个用户都能发现这个功能,或者因为它很酷或者是你的卖点?
你是否认为当需要用到这个按钮时,应该很容易触及?
T –
Typical
典型
在相似的软件中,这个功能是不是通常是的最重要操作?
在上下文环境下,如果这个操作按键被埋在overflow中,用户会不会惊讶?
下面的链接里包含一些系统自带操作的图标素材,针对不同屏幕分辨率,可以使用在Holo
Light和Holo Dark主题中;
另外包括图标的Adobe Illustrator源文件可供自行修改。
4)Action
overflow
Action
overflow中存放并不会频繁用到的操作。按照官方网页上的说法,“Overflow图标仅显示在没有MENU硬按键的手机上,而对于有MENU键的手机,
overflow图标是不显示的,当用户点击MENU按键时弹出。”这样的说法比较蹊跷,似乎和Google敦促手机厂商及软件开发商取消MENU的行为不相匹配。

6、Action bar上可以放下多少操作按钮?

如果操作按钮和软件标题等放在一排,放按钮的空间只能最多占用一半空间,如果按钮采用屏幕底部的整行action bar则可以使用整个屏幕宽度。

屏幕宽度值Density-independent Pixels(dp)决定可以放置的图标数:
少于360 dp = 2个图标
360-499
dp = 3个图标
500-599 dp = 4个图标
多于600 dp = 5个图标

本文参考:http://developer.android.com/design/patterns/actionbar.html

欢迎转载,但请注明出处与作者

出处:http://blog.sina.com.cn/staratsky

作者:流星

android中Actionbar详解的更多相关文章

  1. Android中Context详解 ---- 你所不知道的Context(转)

    Android中Context详解 ---- 你所不知道的Context(转)                                               本文出处 :http://b ...

  2. Android中Context详解 ---- 你所不知道的Context

    转自:http://blog.csdn.net/qinjuning/article/details/7310620Android中Context详解 ---- 你所不知道的Context 大家好,  ...

  3. android中getSystemService详解

        android的后台运行在很多service,它们在系统启动时被SystemServer开启,支持系统的正常工作,比如MountService监 听是否有SD卡安装及移除,ClipboardS ...

  4. Android中 ListView 详解(二)

    本文版权归 csdn noTice501 所有,转载请详细标明原作者及出处,以示尊重! 作者:noTice501 原文:http://blog.csdn.net/notice520/article/d ...

  5. Android中Handle详解

    上图为本人总结的Handler,网上发现一片总结很好的博客就copy过来:作为参考 Handler有何作用?如何使用? 一 .Handler作用和概念 包含线程队列和消息队列,实现异步的消息处理机制, ...

  6. Android中Context详解

    大家好,  今天给大家介绍下我们在应用开发中最熟悉而陌生的朋友-----Context类 ,说它熟悉,是应为我们在开发中时刻的在与它打交道,例如:Service.BroadcastReceiver.A ...

  7. 转:Android中Context详解 ---- 你所不知道的Context

    转:http://blog.csdn.net/qinjuning/article/details/7310620 转:http://blog.csdn.net/lmj623565791/article ...

  8. android中LayoutInflater详解与使用

    android的LayoutInflater用来得到一个布局文件,也就是xxx.xml,而我们常用的findviewbyid是用来取得布局文件里的控件或都布局.inflater即为填充的意思,也就是说 ...

  9. Android中IntentService详解

    简单说,IntentService是继承于Service并处理异步请求的一个类,在IntentService内有一个工作线程来处理耗时操作,启动IntentService的方式和启动传统Service ...

随机推荐

  1. Haskell语言学习笔记(35)Contravariant

    contravariant 模块 contravariant 模块需要安装 $ cabal install contravariant contravariant-1.4 Prelude> :m ...

  2. 如何判断int类型相等

    int  a=10: int b=10: a==b  通过==判断两个int值是否相等. if(a==b){ 相等 }else{ 不相等 }

  3. ArcGIS案例学习笔记3_2

    ArcGIS案例学习笔记3_2 联系方式:谢老师,135-4855-4328, xiexiaokui#qq.com 时间:第3天下午 内容:CAD数据导入,建库和管理 目的:生成地块多边形,连接属性, ...

  4. python中迭代问题

    迭代list的时候不能修改这个list,否则,可能会出错. numbers=[1,0,3,5,0] numbers.sort() print(numbers) print('************* ...

  5. intellij idea 的安装与简单使用

    1.将安装包拷贝到指定目录,特别注意不要有中文路径和空格,路径不要太深 2.点击安装(如果是win10系统要使用管理员权限安装)       3. 4.修改默认安装目录:一般来说我们都不要把软件安装在 ...

  6. Layouts

    [Layouts] Each layout file must contain exactly one root element, which must be a View or ViewGroup ...

  7. HTML的实际演练2

    1.html 换行: 如果你想在不产生新的段落下换行,就使用<br/><p>tishi is a praskdjf<br/>ldkfldj</p> 2. ...

  8. pymongo的常用操作

    环境:pymongo3.0.3,python3 以下是我整理的一些关于pymongo的操作,网上很多是用pymongo.Connecion()去连接数据库的,但是我这里连接一直提示没有这个包,如果大家 ...

  9. poj1088-滑雪 【dfs 记忆化搜索】

    http://poj.org/problem?id=1088 滑雪 Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 79806 ...

  10. SSH登录到远程linux机器并执行命令

    一. 1.JSch是Java Secure Channel的缩写.JSch是一个SSH2的纯Java实现.它允许你连接到一个SSH服务器,并且可以使用端口转发,X11转发,文件传输等,当然你也可以集成 ...