Android之官方导航栏ActionBar

一、ActionBar概述

  ActionBar是android3.0以后新增的组件,主要用于标示应用程序以及用户所处的位置并提供相关操作以及全局的导航功能。下面我们就看看如何使用ActionBar,真正使用之前,我们应该首先了解一下ActionBar的结构。

  根据官方文档,我们看到整个ActionBar可以分为4个部分,具体如下图:

1、  App icon:主要用于展示App的Logo,如果当前界面不是一级界面,还可以展示返回导航。

2、  View Control:用于切换不同的视图或者展示非交互信息如app标题等。

3、  Action Buttons:用于展示app中最重要的操作按钮,如果过多actionbar中放不下则会转移到Action overflow中,长按会展示操作名称。根据文档说明,Action Buttons的总宽度不会超过ActionBar的50%。

4、  Action overflow:用于存放展示相对较少使用的操作按钮。

  了解了ActionBar的基本结构后,下面我们一起看看如何使用ActionBar。

二、ActionBar的使用

  因为actionbar是android3.0之后新增的所以如果在API Level 11以下的版本使用actionBar的话需要导入v7支持包,在这里我们为了兼容低版本需要加入支持包,然后通过以下两个步骤就可以使用ActionBar了。

1、  创建Activity是继承ActionBarActivity

2、  将app或者Activity的主题设置为@style/Theme.AppCompat.Light

  之后运行程序可以看到如下效果图:

  如果不想展示ActionBar,我们可以通过如下代码:

         //取得ActionBar对象
        ActionBar actionBar =getSupportActionBar();
        //调用hide方法,隐藏actionbar
        actionBar.hide();
        //调用show方法,展示actionbar
        //actionBar.show();

  根据actionBar的结构,我们先了解App icon区域的相关操作,此部分主要有两个部分,一部分用于展示Logo,一部分用于展示返回键导航,返回键导航主要操作如下:

1、  返回键导航的显示与隐藏:setDisplayHomeAsUpEnabled(Boolean flag)

2、  返回键导航的图标设置:setHomeAsUpIndicator

3、  返回键的事件处理:重写onOptionsItemSelected方法,做如下判断

if(id==android.R.id.home){

            Toast.makeText(this,"点击了返回!!",Toast.LENGTH_SHORT).show();

            return true;

}

  效果图如下:

  Logo区主要操作:

  1、  Logo的显示与隐藏:

setDisplayShowHomeEnabled(Boolean flag)

setDisplayUseLogoEnabled(Boolean flag)

  2、  Logo的设置:setLogo

  设置后效果图如下:

  第二部分是View Control区,此区域可放置内容比较多,除了用于视图导航的Spinner、tabs、ShareActionProvider,还可以显示标题等信息、自定义View等。本次内容我们先来看看标题部分,其余的下次再做仔细详细介绍。

  主要操作:

1、  显示与隐藏标题:setDisplayShowTitleEnabled(Boolean flag)

2、  设置主标题:setTitle

3、  设置副标题:setSubtitle

4、  设定自定义View:setCustomView

  显示效果如下图:

  Action Buttons和Action flow 的操作类似,都是用于存放展示操作按钮,那么如何将操作按钮显示在actionbar中呢?

  在这里,我们可以分为两步:

1、  重写onCreateOptionsMenu,此方法用于生成菜单按钮,有两种方式,一种方式编写xml文件,另外一种是java代码生成,这里我们选择编写xml。

2、  重写onOptionsItemSelected,此方法用于响应菜单操作。

  Xml内容如下:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools" tools:context=".MainActivity">
    <item android:id="@+id/action_search" android:title="搜索"
        android:orderInCategory="100" app:showAsAction="always"
        android:icon="@drawable/ic_launcher"/>
    <item android:id="@+id/action_share" android:title="分享"
        android:orderInCategory="100" app:showAsAction="never" />
    <item android:id="@+id/action_collection" android:title="收藏"
        android:orderInCategory="100" app:showAsAction="never" />

    <item android:id="@+id/action_font" android:title="字体大小"
        android:orderInCategory="100" app:showAsAction="never" />
</menu>

  ShowAsAction是非常重要的属性,它的值决定了菜单显示区域,分别有never、always、ifroom等

  效果如下:

  想要了解更多内容的小伙伴,可以点击下载源码,亲自运行测试。

作者:杰瑞教育

出处:http://blog.csdn.net/jerehedu

本文版权归烟台杰瑞教育科技有限公司和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

时间: 2024-10-09 05:44:28

Android之官方导航栏ActionBar的相关文章

android之官方导航栏ActionBar(三)之高仿优酷首页

一.问题概述 通过上两篇文章,我们对如何使用ActionBar大致都已经有了认识.在实际应用中,我们更多的是定制ActionBar,那么就需要我们重写或者定义一些样式来修饰ActionBar,来满足具体的需要.我们就以优酷首页为例,一起学习下ActionBar的综合应用. 二.Android系统ActionBar样式的定义 首先,我们先认识一下android系统中是如何定义ActionBar样式的,这里我们以Theme.Holo.Light主题为例,通过源码我们可以看到在该主题中关于Action

Android官方导航栏ActionBar(二)—— Action View、Action Provider、Navigation Tabs的详细用法

在上一篇文章(Android之官方导航栏ActionBar)中,我们介绍了ActionBar各组成部分的基本应用.ActionBar除了提供Action Buttons外,还提供了多种导航方式如 Action View.Action Provider.Navigation Tabs.Drop-down Navigation等,下面我们将具体介绍他们的用法. 一.Action View 首先来看Action View,action view是用于替换action button并显示在action

Android之官方导航栏之Toolbar(Toolbar+DrawerLayout+ViewPager+PagerSlidingTabStrip)

通过前几篇文章,我们对Android的导航栏有了一定的了解认识,本次文章将对Toolbar进行综合应用,主要结合DrawerLayout.ViewPager.PagerSlidingTabStrip一起使用. PagerSlidingTabStrip是github上一个开源库,地址为:https://github.com/astuetz/PagerSlidingTabStrip DrawerLayout之前有过介绍,在此不在过多介绍. 先看布局文件: <RelativeLayout xmlns:

Android界面编程——导航栏及菜单(六)

Android界面编程--导航栏及菜单 2.7导航栏及菜单 2.7.1  ActionBar ActionBar是Android3.0(API 11)开始增加的新特性,ActionBar出现在活动窗口的顶部,可以显示标题.icon.Actions按钮.可交互View,可实现应用程序级的导航,如图2.7-1所示 图2.7-1 其中 1. App icon: 主要用于展示App的Logo,如果当前界面不是一级界面,还可以展示返回航. 2.View Control: 用于切换不同的视图或者展示非交互信

android MIPI屏 导航栏丢失

/**************************************************************************** * android MIPI屏 导航栏丢失 * 说明: * 本文主要是记录使用RGB转MIPI时出现上面导航栏丢失问题的解决方式. * * 2016-3-17 深圳 南山平山村 曾剑锋 ***************************************************************************/ 一.

Android 修改底部导航栏navigationbar的颜色

Android 修改底部导航栏navigationbar的颜色 getWindow().setNavigationBarColor(Color.BLUE); //写法一 getWindow().setNavigationBarColor(getResources().getColor(R.color.black_12));//写法二

Android导航栏ActionBar的详细分析 一

尊重原创:http://blog.csdn.net/yuanzeyao/article/details/39378825 关于ActionBar,相信大家并不陌生,但是真正能够熟练使用的也不是很多,这篇文章主要为大家详细介绍ActionBar的相关知识,ActionBar是在Android3.0中引入的概念,所以在2.x系统中使用ActionBar我们需要依赖ActionBarSherklock或者androi-support-v7库,ActionBarSherklock是anroid中非常有名

Android应用底部导航栏(选项卡)实例

现在很多android的应用都采用底部导航栏的功能,这样可以使得用户在使用过程中随意切换不同的页面,现在我采用TabHost组件来自定义一个底部的导航栏的功能. 我们先看下该demo实例的框架图: 其中各个类的作用以及资源文件就不详细解释了,还有资源图片(在该Demo中借用了其它应用程序的资源图片)也不提供了,大家可以自行更换自己需要的资源图片.直接上各个布局文件或各个类的代码: [1]  res/layout目录下的 maintabs.xml 源码: <?xml version="1.0

仿Android印象笔记底部导航栏

最近用上了印象笔记,觉得android 版的底部导航栏挺不错的,好多应用里面都有用到,想着自己动手实现一下,不多说,先上图: 要完成这样的效果.需要自定义ViewGroup. 1.onMeasure(测量过程) 2.onLayout(布局) 3.添加动画 onMeasure(测量过程) @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { int count = getChildCoun