当需要在 android 7或更高的版本使用 ActionBar,则可以通过继承ActionBarActivity来实现,

网上有一个开源项目来兼容老版本显示ActionBar的效果:ActionBarSherlock。

使用android.support.v7 来实现ActionBar感觉会更简单一些。

android.support.v7 有三个jar文件可供使用,对于ActionBar我们需要使用android-support-v7-appcompat.jar

路径:...\sdk\extras\android\support\v7\appcompat\libs

但是直接把这个jar  导入项目是不可以使用的,具体的步骤:

1. 把appcompat 工程导入eclipse  [appcompat是一个 library project] ,路径:...\sdk\extras\android\support\v7\appcompat\

导入之后的项目:

2.导入appcompat工程的时候,记得要  Copy projects into workspace

3.创建你自己的工程,如myDemo,右键单击该工程,选择Properties

在弹出的对话框中,选择Android选项卡,然后点击Add按钮,添加appcompat工程。

然后 OK 就可以了,我们的工程就引用了 support V7库工程了。

4.在manifest文件中,为你使用了ActionBar的actitity添加theme属性,这个theme必须是 @style/Theme.AppCompat 或它的子类

如:

5.在res/menu目录下,修改Menu对应的xml文件:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:alpha="http://schemas.android.com/apk/res-auto" > <item
android:id="@+id/action_settings"
android:orderInCategory="100"
android:icon="@drawable/ic_launcher"
alpha:showAsAction="ifRoom|withText"
android:title="@string/action_settings"/> </menu>

需要注意的是:

xmlns:alpha="http://schemas.android.com/apk/res-auto"  和  alpha:showAsAction="ifRoom|withText"

他们的 alpha 要一致哦,相当于自定义一个命名空间,名字可以随意,但要一致。

感觉这样的含义:如果直接使用android:showAsAction,但对于早期的版本来说android命名空间下不存在这个属性,就不能看到ActionBar的效果,而这个属性的定义存在于support V7 里面,所以可以兼容之前的版本。

6.继承 ActionBarActivity  处理ActionBar

import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.Menu; public class MainActivity extends ActionBarActivity{ @Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
} @Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
} }

本文转自:http://blog.csdn.net/go_to_learn/article/details/10230987

android 使用android.support.v7 添加ActionBar的更多相关文章

  1. Android项目使用support v7时遇到的各种问题

    Android项目使用support v7时遇到的各种问题 点击你的工程右键-->Properties-->Android 1.查看你引用的appcompat_v7包是否引用正确 2.用较 ...

  2. android.support.v7.app.AppCompatActivity

    1.Android Studio (api 23) 新建项目的时候 Activity public class MainActivity extends AppCompatActivity 2.系统默 ...

  3. [android]com.android.support:appcompat-v7:XXX 包导入无法Build

    在学习<Android编程权威指南>时,按书中要求添加com.android.support:appcompat的依赖,然后编译不通过,提示如下问题: 大概意思是,Android Pie之 ...

  4. 【Android】Android之Action Bar

    Action Bar是在窗口上指示用户位置的组件,同时给用户提供导航和操作.使用Action Bar可以让你的应用在不同配置的屏幕上看起来比较一致.在开始之前,先了解一些相关的术语: Action B ...

  5. 〖Android〗Android源代码所有目录生成的Target(编译生成文件反查)

    => build/tools/zipalign: out/host/linux-x86/bin/zipalign (host) => build/tools/atree: out/host ...

  6. Android Support V7 包中 ActionBar的使用

    以下示例为API<11,因为API>=11时本来就有ActionBar可以使用,所以不猜讨论范围之内 今天Google发布了最新的API 18,包括众多新的性能,正好最近在研究Action ...

  7. 配置android.support.v7.widget.Toolbar 搜索框样式

    AndroidManifest.xml <?xml version="1.0" encoding="utf-8"?> <manifest xm ...

  8. classes could not be found: - android.support.v7.internal.app.WindowDecorActionBar问题的解决方法

    转载至----http://my.oschina.net/u/2425146/blog/546649?fromerr=aDYrFDVx.仅作个人收藏使用,有转载的朋友请连续原作者,谢谢 刚刚进入stu ...

  9. 【转】Caused by: java.lang.NoClassDefFoundError: android.support.v7.gridlayout.R$dimen 异常解决方法

    在使用gridlayout中遇到 Caused by: java.lang.NoClassDefFoundError: android.support.v7.gridlayout.R$dimen 问题 ...

随机推荐

  1. html常用标签 第二节

    直接上代码了 <html> <head> <title>我的第二个网页</title> </head> <body> <h ...

  2. Flexbox盒子弹性布局

    Can I Use? 2. 概念: 当你给一个元素使用了flexbox模块,那么它的子元素就会指定的方向在水平或者纵向方向排列.这些子元素会按照一定的比例进行扩展或收缩来填补容器的可用空间. < ...

  3. Flash Professional CS6 安装zxp插件

    说明 头两天因工作原因需要使用DragonBones,他的工作方式是的Flash Professional CS5.5以上的环境. DragonBones提供的是一个文件名为:xzp的文件,在Wind ...

  4. References & the Copy-Constructor

    1 There are certain rules when using references: (Page 451) A reference must be initialized when it ...

  5. 九度OJ 1455 珍惜现在,感恩生活 -- 动态规划(背包问题)

    题目地址:http://ac.jobdu.com/problem.php?pid=1455 题目描述: 为了挽救灾区同胞的生命,心系灾区同胞的你准备自己采购一些粮食支援灾区,现在假设你一共有资金n元, ...

  6. 浏览器信息(Navigator)

    window.navigator 代表正在使用的浏览器的对象. ◆ window.navigator.appCodeName 返回浏览器的代码名."Mozilla" 本来是 Net ...

  7. 使用win8.1 x64 office2010 php 使用 pdo_odbc 连接excel失败的问题

    public function init($filePath){ $dbq = iconv('UTF-8',"GBK",BASEPATH.'../'.$filePath); $ds ...

  8. php会话控制cookie/session

    设置cookie PHP设置Cookie最常用的方法就是使用setcookie函数,setcookie具有7个可选参数,我们常用到的为前5个: name( Cookie名)可以通过$_COOKIE[' ...

  9. xcode升级后, 插件失效修复

    1. 首先查看 Xcode 的 UUID,在终端执行 defaults read /Applications/Xcode.app/Contents/Info DVTPlugInCompatibilit ...

  10. UIWebView1-b

    随着H5的强大,hybrid app已经成为当前互联网的大方向,单纯的native app和web app在某些方面显得就很劣势.关于H5的发展史,这里有一篇文章推荐给大家,今天我们来学习最基础的基于 ...