ActionBar就是一个标题栏,以前Android3.0之前还称为标题栏,Android3.0之后取名为ActionBar

首先必须在AndroidManifest.xml中指定Application或Activity的theme是Theme.Holo或其子类,否则将无法使用ActionBar

android:theme="@android:style/Theme.Holo.Light"

<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@android:style/Theme.Holo.Light"
android:name=".intent.MyApplication">

Android对ActionBar进行了一系列的封装;

ActionBar就是标题栏:

隐藏标题栏:

package liudeli.activity;

import android.app.ActionBar;
import android.app.Activity;
import android.os.Bundle; public class MyActionBarActivity extends Activity { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); setContentView(R.layout.activity_action_bar); // ActionBar是在Activity中,所以可以直接得到
ActionBar actionBar = getActionBar(); // 隐藏ActionBar(标题栏)
actionBar.hide();
}
}

可以对ActionBar进行各种各样的设置,ActionBar提供了各式各样的方法:


关于Menu菜单:

早期之前的Android2.2,Android2.3 .....  系统的手机,都是有Menu菜单键的,一般是在左边的键,就是菜单Menu键

随着Android的发展,这个菜单Menu键 慢慢的就不见了,现在很多手机都没有了这个菜单Menu键了,于是Android就设计了可以把Menu放置在ActionBar上;


AndroidManifest.xml的主题配置为 可以使用ActionBar

首先必须在AndroidManifest.xml中指定Application或Activity的theme是Theme.Holo或其子类,否则将无法使用ActionBar

android:theme="@android:style/Theme.Holo.Light"

<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@android:style/Theme.Holo.Light"
android:name=".intent.MyApplication">

Activity的代码:

package liudeli.activity;

import android.app.ActionBar;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.widget.Toast; public class MyActionBarActivity extends Activity { @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); // ActionBar是在Activity中,所以可以直接得到
// ActionBar actionBar = getActionBar(); // 隐藏ActionBar(标题栏)
// actionBar.hide(); // actionBar. ......
} /**
* 创建菜单里面的选择
* @param menu
* @return
*/
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
// 使用菜单加载器
MenuInflater menuInflater = getMenuInflater(); // 加载一个菜单文件
menuInflater.inflate(R.menu.menu, menu); return true;
} /**
* 菜单里面的选择被选择回调
* @param item
* @return
*/
@Override
public boolean onOptionsItemSelected(MenuItem item) {
super.onOptionsItemSelected(item);
switch (item.getItemId()) {
case R.id.menu_create:
Toast.makeText(this, item.getTitle()+ "-你选择了创建", Toast.LENGTH_SHORT).show();
break;
case R.id.menu_delete:
Toast.makeText(this, item.getTitle()+ "-你选择了删除", Toast.LENGTH_SHORT).show();
break;
case R.id.menu_sub1: // 子菜单
Toast.makeText(this, item.getTitle()+ "-你选择了子菜单一", Toast.LENGTH_SHORT).show();
break;
case R.id.menu_sub2: // 子菜单
Toast.makeText(this, item.getTitle()+ "-你选择了子菜单二", Toast.LENGTH_SHORT).show();
break;
}
return true;
}
}

Menu.xml 文件的代码

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"> <item
android:id="@+id/menu_create"
android:icon="@android:drawable/ic_menu_add"
android:title="X新建">
</item> <item
android:id="@+id/menu_delete"
android:icon="@android:drawable/ic_menu_add"
android:title="X删除">
</item> <item android:title="X子菜单"> <menu> <item
android:id="@+id/menu_sub1"
android:icon="@android:drawable/ic_menu_add"
android:title="X子菜单1">
</item> <item
android:id="@+id/menu_sub2"
android:icon="@android:drawable/ic_menu_add"
android:title="X子菜单2">
</item> </menu> </item> </menu>

效果:(Android模拟器是有Menu菜单键的)

Android-ActionBar-与Menu结合的更多相关文章

  1. Android ActionBar以及menu的代码设置样式

    menu部分xml代码 <?xml version="1.0" encoding="utf-8"?> <menu xmlns:android= ...

  2. android ActionBar 去掉menu分隔线

    自定义Theme继承原来Theme修改其中的分隔线: <item name="actionBarDivider">@null</item>  低版本设置 & ...

  3. Android ActionBar 初探

    1.指南,例子,个人感觉 首先上官网指南链接http://developer.android.com/guide/topics/ui/actionbar.html 参考了官网上的例子http://de ...

  4. Android ActionBar

    ActionBar 在android3.0中就加入了,但是android3.0适用于平板电脑的,在手机不能使用.android 4.0之后也开始有AndroidBar.所以说要想使用androidBa ...

  5. ToolBar、ActionBar与Menu的纠葛(以及navigationIcon、setHomeButtonEnabled、setDisplayHomeAsUpEnabled)

    因为贴图的繁琐...所以下面是无图版...完整的在这里: 探究一下toobar和actionbar在使用menu时的吊诡情况 一.背景介绍 toolbar最近比较火,而且是出出来代替actionbar ...

  6. Android ActionBar 一步一步分析 (转)

    原文摘自:http://blog.csdn.net/android2me/article/details/8874846 1.Action Bar 介绍 我们能在应用中看见的actionbar一般就是 ...

  7. Android ActionBar详解

    Android ActionBar详解 分类: Android2014-04-30 15:23 1094人阅读 评论(0) 收藏 举报 androidActionBar   目录(?)[+]   第4 ...

  8. Android ActionBar(转)

    本文内容 关于 ActionBar 必要条件 项目结构 环境 演示一:Action Bar 显示隐藏 演示二:Action Item 显示菜单选项 演示三:Action Home 启用“返回/向上”程 ...

  9. Android ActionBar应用实战,高仿微信主界面的设计

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/26365683 经过前面两篇文章的学习,我想大家对ActionBar都已经有一个相对 ...

  10. Android ActionBar完全解析,使用官方推荐的最佳导航栏(下) .

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/25466665 本篇文章主要内容来自于Android Doc,我翻译之后又做了些加工 ...

随机推荐

  1. Ansible Playbook Roles and Include Statements

    介绍 虽然可以在一个非常大的文件中编写一个playbook(您可能会以这种方式开始学习playbook),但最终您将需要重新使用文件并开始组织事情. 在基本级别,饱含任务的文件允许您将配置策略分解成较 ...

  2. php ip2long 负数问题

    官方网站: Note: 因为PHP的 integer 类型是有符号,并且有许多的IP地址讲导致在32位系统的情况下为负数, 你需要使用 "%u" 进行转换通过 sprintf()  ...

  3. java &&与||短路的详解

    短路运算符就是我们常用的“&&”.“||”,一般称为“条件操作”. class Logic{    public ststic void main(String[] args){    ...

  4. X_PU

    通俗易懂告诉你CPU/GPU/TPU/NPU...XPU都是些什么鬼?[附把妹秘籍] 2017-10-27 19:54移动芯片/谷歌 作者:iot101君 物联网智库 原创 转载请注明来源和出处 现在 ...

  5. 转)ubuntu安装clang

    主要参考:http://blog.csdn.net/firebird321/article/details/48528569 1.下载源码 去http://llvm.org/releases/down ...

  6. python之多并发socket

    先看socket多并发的服务端的代码,这里是用多线程实现的多并发socketserver import socketserver # socketserver有四个基本的类,后两个不常用,这4个类处理 ...

  7. 类实现Parcelable接口在Intent中传递

    类实现了Parcelable接口就可以在Intent中传递   只要在类的定义中实现Parcelable接口 代码 package entity; import android.os.Parcel; ...

  8. 给dede添加栏目图片和栏目描述

    有的时候我们希望调用栏目时把栏目的图片和描述调出来,但dede好像没有提供栏目图片这个功能,而栏目的描述也是给meta:Description使用的,不是很方便.   所以我们需要自已给dede添加图 ...

  9. jdeveloper基础教程(中文版)

    jdeveloper基础教程(中文版) 程序员的基础教程:菜鸟程序员

  10. 在Excel中根据某一个单元格的出生日期自动精确计算年龄

    =IF(MONTH(NOW())<MONTH(G4),INT(YEAR(NOW())-YEAR(G4))-1,IF(MONTH(NOW())>MONTH(G4),YEAR(NOW())-Y ...