简介

从Android3.0开始(targetSdkVersion或者minSdkVersion为11或者更高),ActionBar被包括在了所有主题为Theme.holo(或者子类)的主题当中。

使用方法

在ActionBar上的图标叫做ActionButtons,可以把不重要的ActionButtons放在ActionOverflows。

<menu xmlns:android="http://schemas.android.com/apk/res/android" >

    <item
android:id="@+id/action_share"
android:actionProviderClass="android.widget.ShareActionProvider"
android:showAsAction="ifRoom"
android:title="@string/share"/>
<item
android:id="@+id/action_search"
android:icon="@drawable/ic_action_search"
android:showAsAction="ifRoom"
android:title="@string/search"/>
<item
android:id="@+id/action_setting"
android:showAsAction="always"
android:title="@string/setting"/> </menu>

在Activity中:

@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
MenuItem shareItem = menu.findItem(R.id.action_share);
return true;
}

自定义ActionBar background:

  1. 在Theme.xml中新建自定义Style,使其继承已有的Action Bar Style(Theme.holo)
  2. 复写其actionBarStyle属性
  3. actionBarStyle属性值指向另一个被覆写了background属性的Style
  4. 指定该background的属性值

theme.xml:

<resources xmlns:android="http://schemas.android.com/apk/res/android">

    <style name="CustomActionBarTheme" parent="@android:style/Theme.Holo.Light.DarkActionBar">
<item name="android:actionBarStyle">@style/CustomBackground</item>
</style> <style name="CustomBackground" parent="@android:style/Widget.Holo.Light.ActionBar.Solid.Inverse">
<item name="android:background">@drawable/actionbar_background</item>
</style>
...

设置ActionBar为Tab样式:

ActionBar actionBar = getActionBar(); //for <3.0 getSupportActionBar();
actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
for (int i = 0; i < 3; i++){
Tab tab = actionBar.newTab();
tab.setText("Tab" + i);
tab.setTabListener(null);
actionBar.addTab(tab);
}

实现Tablistener回调方法:

        ActionBar.TabListener tabListener = new ActionBar.TabListener() {
@Override
public void onTabSelected(Tab tab, FragmentTransaction ft) {
Toast.makeText(MainActivity.this, "TabSelected" + tab.getPosition(), Toast.LENGTH_SHORT).show();
} @Override
public void onTabUnselected(Tab tab, FragmentTransaction ft) { } @Override
public void onTabReselected(Tab tab, FragmentTransaction ft) { }
};

启用Overlay模式:

ActionBar占用一定屏幕空间,可以使之自动隐藏,但是每次自动隐藏又会导致重新计算屏幕,可以设置其为Overlay模式以把ActionBar放在屏幕的上面而不是顶部。

首先需要创建自定义theme,并设置android.windowActionBarOverlay属性为true。

<style
name="CustomActionBarOverlayTheme"
parent="@android:style/Theme.Holo"
>
<item name="android:windowActionBarOverlay">true</item> </style>

如果要预留一定空间,可以指定PaddingTop:

android:paddingTop="?android:attr/actionBarSize"

添加ActionProvider:

menu.xml:

    <item
android:id="@+id/action_share"
android:actionProviderClass="android.widget.ShareActionProvider"
android:showAsAction="ifRoom"
android:title="@string/share"/>

在Activity代码中:(当前系统中能够发送图片的所有应用)

    @Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
MenuItem shareItem = menu.findItem(R.id.action_share);
mShareActionProvider = (ShareActionProvider) shareItem.getActionProvider();
mShareActionProvider.setShareIntent(getDefaultIntent());
return true;
} private Intent getDefaultIntent() {
Intent intent = new Intent(Intent.ACTION_SEND);
intent.setType("image/*");
return intent;
}

Android中ActionBar的使用的更多相关文章

  1. Android中ActionBar及Overflow的显示

    最近在按照Android的API文档学习Android中actionbar的使用,Action bar 最基本的形式,就是为 activity 显示标题,并且在标题左边显示一个 app icon.在这 ...

  2. 【转】【已解决】Android中ActionBar中不显示overflow(就是三个点的那个按钮)--不错

    原文网址:http://www.crifan.com/android_actionbar_three_dot_overflow_not_show/ [问题] 折腾: [记录]继续尝试给Android程 ...

  3. Android中ActionBar和ToolBar添加返回箭头

    感谢大佬:https://blog.csdn.net/baidu_32682229/article/details/77927745 ActionBar添加返回箭头 //onCreate方法中 Act ...

  4. android中Actionbar详解

    1.什么是Action BarAction Bar被认为是新版Android系统中最重要的交互元素,在程序运行中一直置于顶部,主要起到的作用在于:1)突出显示一些重要操作(如“最新”.“搜索”等)2) ...

  5. 对android中ActionBar中setDisplayHomeAsUpEnabled和setHomeButtonEnabled和setDisplayShowHomeEnabled方法的理解(转)

    setHomeButtonEnabled这个小于4.0版本的默认值为true的.但是在4.0及其以上是false,该方法的作用:决定左上角的图标是否可以点击.没有向左的小图标. true 图标可以点击 ...

  6. android中actionbar的title居中

    1.配置 activity的主题: android:theme="@style/AppThemeBB" 2. 通过Menu.xml文件布局 添加菜单item menu/menu.x ...

  7. android开发(32) android 中 actionbar 常用方法。设置标题,隐藏图标等

    设置标题: actionBar.setTitle("关于我们"); 使返回箭头出现 actionBar.setDisplayHomeAsUpEnabled(true); 监听返回按 ...

  8. 对android中ActionBar中setDisplayHomeAsUpEnabled和setHomeButtonEnabled和setDisplayShowHomeEnabled方法的理解

    转自: http://blog.csdn.net/lovexieyuan520/article/details/9974929 http://blog.csdn.net/cyp331203/artic ...

  9. ANDROID中去掉ACTIONBAR或TABWIDGET的分隔线

    在android中,有时需要对ActionBar或者TabWidget的分隔线进行定制,如取消,相关的属性设置为android:divider 以TabWidget为例,取消对应的函数: tabWid ...

随机推荐

  1. iOS NSURLConnection POST异步请求封装,支持转码GBK,HTTPS等

    .h文件 #import <Foundation/Foundation.h> //成功的回调 typedef void(^successBlock)(id responseObj); // ...

  2. C# redis使用

    1.下载安装Redis常用组件 下载地址https://github.com/dmajkic/redis/downloads 把文件内容拷贝到需要安装的目录下,如:E:\redis-2.8.172.启 ...

  3. 关于composer安装插件时候提示找不到fxp插件时候的解决办法

    如果你在某个目录使用composer.phar,而且在别的目录页使用了composer,并没有全局安装composer的时候,不同目录之间的可能会互相干扰从而报错 root@tyr:/var/www/ ...

  4. jQuery innerWidth outerWidth(false/true)

    outerWidth默认为false

  5. VB.net的特殊语法(区别于C#.NET)

    1:引入命名空间(Imports) Imports System.Exception Imports System.Data.SqlClient Imports System.Security.Cry ...

  6. iOS - Bitcode App 瘦身中间码

    1.Bitcode 随着 Xcode7 的发布,Apple 提供了一项新的技术来支持 App 瘦身功能,那就是 Bitcode. 1.BitCode 是什么 Bitcode is an interme ...

  7. python成长之路【第八篇】:异常处理

    一.异常基础 在编程过程中为了增加友好性,在程序出现bug时一般不会将错误信息显示给用户,而是现实一个提示的页面,通俗来说就是不让用户看见大黄页!!! 语法: try: pass except Exc ...

  8. cmd命令行提示符

    cd..用来返回上层到目录 cd download(某一具体文件夹)进入此文件夹中的一个文件夹 进入命令行时直接输入D: 进入D盘 dir 显示文件目录

  9. 【转】 C++的精髓——虚函数

    虚函数为了重载和多态的需要,在基类中是由定义的,即便定义是空,所以子类中可以重写也可以不写基类中的函数! 纯虚函数在基类中是没有定义的,必须在子类中加以实现,很像java中的接口函数! 虚函数 引入原 ...

  10. swift_属性观察者

    //: Playground - noun: a place where people can play import Cocoa var str = "Hello, playground& ...