扩展用户体验之操作栏ActionBar

一、什么是ActionBar

  熟悉Android的人应该很清楚ActionBar指的是哪一部分,不熟悉的人并不清楚其的重要性,特别是Web app与Hybrid app开发者基本没有这一概念,当然在你们平时的开发中也用到了类似于ActionBar功能的布局部分,只是实现当时不同而已,一个使用Java实现,一个使用html来布局。

  那到底什么是ActionBar呢?每个App的不同界面中都有一个相同的部分,这部分UI一般在一个App中是一致的,这部分就是导航栏,导航栏中一般有返回导航菜单,应用图标,产品徽标,当前上下文标题,快捷菜单,以及Tab,例如下图中就是具有返回导航与上下文标题的操作栏(ActionBar)

二、Android中配置是否引入ActionBar

  ActionBar并不是每个Activity具有的,有的应用中就看不到这样的操作栏,例如HyBrid app中整个都没有ActionBar,但是有的App中又是用这样的操作栏,这是如何配置的呢?这与Activity的主题有关,例如使用NoActionBar的主题或者使用具有

<item name="android:windowActionBar">false</item>

属性的主题style时,该Activity就不存在ActionBar,这个不存在并不表示不显示,而是没有该实例,即通过mcontext.getActionBar()获取到的是null,相反的,如果要使用ActionBar,那么就不能设置Activity的主题具有该属性。

三、静态ActionBar

  静态ActionBar是指不可操作的ActionBar,就是显示给用户“看”的部分,而不是点的部分。

  其中包括:图标、徽标、标题、二级标题

    图标:通过Activity注册时的android:icon设置或者通过getActionBar().setIcon()设置

    徽标:通过Activity注册时的android:logo设置或者通过getActionBar().setLogo()设置

    标题:通过Activity注册时的android:label设置或者通过getActionBar().setTitle()设置

    二级标题:通过getActionBar().setSubTitle()设置

  图标与徽标的区别:

    他们两者都是一个图片,显示的位置都是在标题的左侧,也就是最左侧,但是两者只能有一个显示,无法同时显示,图标表示的应用程序快捷图标,徽标通常是应用或者企业的品牌,显示徽标的时候通常不会再显示标题,即一般的显示组合是:图标+标题||徽标;图标是大小固定的正方形,无法改变,而徽标的宽度是不固定的,通常情况下控制徽标的宽度为图标的2倍。

  显示与隐藏:

    ActionBar的显示:getActionBar().show();

    ActionBar的隐藏:getActionBar().hide();

    标题的显示与隐藏:getActionBar().setDisplayShowTitleEnable(true|false);

    图标与徽标的显示切换:如果两者都有,则默认显示徽标,当两者都有又想显示图标是:getActionBar().setDisplayUseLogoEnable(false);

    图标与徽标同时隐藏:getActionBar().setDisplayShowHomeEnable(false);

四、动态ActionBar

  动态ActionBar表示用户能够“点”的操作栏。

  ActionBar中一般至少有一个返回上一级的按纽,有的甚至还有下拉菜单按纽,Tab等快捷菜单。

  让静态的ActionBar动起来:

getActionBar().setHomeButtonEnabled(true);

  一行代码能够让ActionBar中左侧图标、徽标、标题部分能够点击,当然如果设置

getActionBar().setDisplayHomeAsUpEnabled(true);

  这样就会在最左边添加一个返回箭头,其左侧点击ActionBar内部会广播一个事件,触发Activity中的onOptionsItemSelected事件,在该事件中判断item的id,来执行相应操作,因为其他的快捷菜单按钮也会触发该事件

  实现点击返回上一级Activity的代码实例:

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.t_act);
        getActionBar().setHomeButtonEnabled(true);
        getActionBar().setDisplayHomeAsUpEnabled(true);
    }
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
       switch(item.getItemId()){
           case android.R.id.home:
               finish();
               return true;
           default:
               return super.onOptionsItemSelected(item);
       }
    }

  另一种简单的方式是在Activity注册的时候指定其父Activity:android:parentActivityName="",那么就不需要重写onOptionsItemSelected方法就可以实现点击返回父Activity了,建议使用第一种,因为第二种返回的动画与打开新Activity动画一样,同时不利于Activity多处复用,如果一个Activity可能存在多个父Activity,这样就没办法了,而且,返回按钮一般不仅仅只是执行返回操作,有时需要关闭一些view或对话框形式Activity,等关闭这些之后再点击才关闭当前Activity。

  返回按钮图片自定义方法:

    方法一:该方法可能较低版本的Android API不支持

getActionBar().setHomeAsUpIndicator(R.drawable.back6);

    方法二:在样式中配置,所有都支持

<item name="android:homeAsUpIndicator">@drawable/back6</item>

  导航Tab键的使用

    配置导航Tab显示:getActionBar().setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);

    通常显示Tab的时候也是禁用标题的,而Tab的添加需要先创建Tab,然后像actionbar中addTab(tab);

时间: 2024-08-07 04:33:35

扩展用户体验之操作栏ActionBar的相关文章

Andriod 关于操作栏 ActionBar 的设计原则【转载+整理】

原文地址 本文内容 操作栏目的 基本布局 适应旋转和不同的屏幕尺寸 副操作栏的布局 操作栏按钮 上下文操作栏 操作栏清单 设计原则就是为你在编写 Android APP 时,尤其是如何安排操作按钮的位置,以及顺序等等,能大幅度提供用户体验的,提供的一个指导思想.值得时不时地回忆一下,这些指导原则都是经过长时间实践得到的结论.一个 APP 好不好,在你最开始时,点击一遍所有的菜单和按钮,就清楚了.在使用过大量 Android APP 后,你会发现,遵循了下面这些原则的 APP 将会有更好的用户体验

Android 创建项目ActionBar(操作栏)不显示的问题

昨晚在新建一个项目的时候,发现想创建一个带操作栏的项目,无论我怎么调,就是创建不出来. 在创建工程的时候选择了 但是打开运行还是没有操作栏 但是看了看其他的项目,AndroidManifest.xml文件以及styles.xml文件以及其他布局文件代码都是一样的,为什么其他的项目能显示呢? 查了好长时间都没有解决.最后在书中找到了答案. 又是一个版本兼容的问题(最近遇到了N多类似问题),操作栏组件是在 Android 3.0 (API 11)中被引入的,它是一个导航面板,代替了每个Activit

cocos2d-x视频控件VideoPlayer的用户操作栏进度条去除(转载)

目前遇到两个问题: (1)视频控件移除有问题,会报异常. (2)视频控件有用户操作栏,用户点击屏幕会停止视频播放. 对于第一个问题,主要是移除控件时冲突引起的,目前简单处理是做一个延时处理,先stop视频播放,然后一个Action移除自身,如下: local function onComplete() video:stop() video:runAction( cc.Sequence:create( cc.CallFunc:create(callback), cc.RemoveSelf:crea

用户体验提升是网络推广用心操作的核心指向

题意:经典八数码问题 思路:HASH+BFS #include <iostream> #include <cstdio> #include <cstring> #include <algorithm> using namespace std; const int MAXN = 500000; const int size = 1000003; typedef int State[9]; char str[30]; int state[9],goal[9]={

cocos2d-x视频控件VideoPlayer的用户操作栏进度条去除

cocos目前出了新的视频播放器控件,仅支持ios和android平台,不支持window平台.项目打算使用一段视屏片头,所以使用该视频控件来播放片头. 目前遇到两个问题: (1)视频控件移除有问题,会报异常. (2)视频控件有用户操作栏,用户点击屏幕会停止视频播放. 对于第一个问题,主要是移除控件时冲突引起的,目前简单处理是做一个延时处理,先stop视频播放,然后一个Action移除自身,如下: local function onComplete() video:stop() video:ru

Android官方入门文档[8]重叠操作栏

Android官方入门文档[8]重叠操作栏 Overlaying the Action Bar重叠操作栏 This lesson teaches you to1.Enable Overlay Mode 1.For Android 3.0 and higher only 2.For Android 2.1 and higher 2.Specify Layout Top-margin You should also read?Styles and Themes 这节课教你1.启用重叠模式 1.对An

Android官方入门文档[5]建立操作栏

Android官方入门文档[5]建立操作栏 Setting Up the Action Bar建立操作栏 This lesson teaches you to1.Support Android 3.0 and Above Only2.Support Android 2.1 and Above You should also read?Setting Up the Support Library 这节课教你1.仅支持Android3.0及以上2.支持Android2.1及以上 你也应该阅读?设置支

Android官方入门文档[7]样式化操作栏

Android官方入门文档[7]样式化操作栏 Styling the Action Bar样式化操作栏 This lesson teaches you to1.Use an Android Theme2.Customize the Background3.Customize the Text Color4.Customize the Tab Indicator You should also read?Styles and Themes?Android Action Bar Style Gene

《iOS用户体验》总结与思考-改动版

假设转载此文.请注明出处:http://blog.csdn.net/paulery2012/article/details/25157347,谢谢. 前言: 本文是在阅读<ios用户体验>的过程中,记录的总结和个人的感受思考.不免有错误之处,恳请读者指正,在以下留言就可以. 第一章:ios人机界面指南概述 1.智能手机的特点:大尺寸.高分辨率.强大的计算能力 2.签名交互:滚动轮.导航键.按键和硬键盘.软键盘.触控笔.触屏.输入特性又被称为"签名交互",用户能够通过输入方式