博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
android 使用android.support.v7 添加ActionBar
阅读量:6088 次
发布时间:2019-06-20

本文共 1846 字,大约阅读时间需要 6 分钟。

当需要在 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文件:

[html]
  1. <menu xmlns:android="http://schemas.android.com/apk/res/android"   
  2.     xmlns:alpha="http://schemas.android.com/apk/res-auto" >  
  3.   
  4.     <item  
  5.         android:id="@+id/action_settings"  
  6.         android:orderInCategory="100"  
  7.         android:icon="@drawable/ic_launcher"  
  8.         alpha:showAsAction="ifRoom|withText"  
  9.         android:title="@string/action_settings"/>  
  10.   
  11. </menu>  

需要注意的是:

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

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

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

6.继承 ActionBarActivity  处理ActionBar

[java]
    1. import android.os.Bundle;  
    2. import android.support.v7.app.ActionBarActivity;  
    3. import android.view.Menu;  
    4.   
    5. public class MainActivity extends ActionBarActivity{  
    6.   
    7.     @Override  
    8.     protected void onCreate(Bundle savedInstanceState) {  
    9.         super.onCreate(savedInstanceState);  
    10.         setContentView(R.layout.activity_main);  
    11.     }  
    12.   
    13.     @Override  
    14.     public boolean onCreateOptionsMenu(Menu menu) {  
    15.         // Inflate the menu; this adds items to the action bar if it is present.  
    16.         getMenuInflater().inflate(R.menu.main, menu);  
    17.         return true;  
    18.     }  
    19.   
你可能感兴趣的文章
使用Keycloak实现安全的SpringBoot微服务
查看>>
我理解的作用域
查看>>
纯JavaScript编写的图表库Highcharts v7.1.0发布,带来全新的图表类型
查看>>
整合spring cloud云架构 - Gateway的基本入门
查看>>
python爬虫系列(4.1-关于文件的写入)
查看>>
springmvc+dubbo整合学习
查看>>
Spring Cloud构建统一配置中心
查看>>
SpringBoot使用数据库
查看>>
React.js 实战之 JSX 简介
查看>>
微服务java_b2b商城系统_java商城源码100%开源适合2次开发(十二):使用Spring Cloud Sleuth和Zipkin进行分布式链路跟踪...
查看>>
squid透明代理客户端打开网页变慢
查看>>
25个最常用的iptables策略
查看>>
我的友情链接
查看>>
AIX rootvg镜像的标准做法
查看>>
把视频设置成屏保_已迁移
查看>>
【Tensorflow】辅助工具篇——tensorflow slim(TF-Slim)介绍
查看>>
fckeditor上传.变_突破
查看>>
APP-V5.0的Sequencer过程
查看>>
对mysql中last_insert_id()的新理解
查看>>
unset 命令
查看>>