添加ActionBar

  Android 3.0(API 11)(不含API11)以下的版本中,如果需要活动有ActionBar,需要让活动继承ActionBarActivity类,并且在Manifest.xml文件中对应活动的注册信息中添加主题属性。比如要让MainActivity有ActionBar,需要:

  第一步,让MainActivity继承ActionBarActivity类

  public class MainActivity extends ActionBarActivity { ... }

  第二步,在MainActivity的注册信息中添加主题属性,像下面这样:

  <activity  android:name=".MainActivity"

  android:theme="@style/Theme.AppCompat.Light" ... >

  从 Android 3.0(API 11)开始,ActionBar被添加到Activity中,并且默认使用Theme.Holo主题,所以如果targetSdkVersion设置的不小于11,只需要继承Activity类,活动就会有ActionBar。

隐藏ActionBar:

  如果需要隐藏ActionBar,可以在活动的注册信息中将主题设置为Theme.NoTitleBar,如下:

<activity
android:name=".MainActivity"
android:theme="@android:style/Theme.NoTitleBar"
… >

  如果要隐藏ActionBar和通知栏,相当于全屏,可以将主题设置成Theme.NoTitleBar.Fullscreen,如下:

<activity
android:name=".MainActivity"
android:theme="@android:style/Theme.NoTitleBar.Fullscreen "
… >

  在Android3.0(API11)及以上的版本中,还可以这样,如果某个活动需要隐藏(或显示)ActionBar,可以:

ActionBar actionBar = getActionBar();
actionBar.hide();
actionBar.show();

ActionBar标题文本

  标题文本是靠活动的注册信息中android:label属性控制的,比如:

<activity android:name=".DisplayMessageActivity"
android:label="@string/title_activity_display_message" />

标题栏返回按钮

  类似于下图这种效果。

  假设要给DisplayActivity增加这种返回按钮,点击后返回MainActivity。

  首先需要将DisplayActivity的ParentActivity设置为MainActivity,在活动注册信息中设置:

<activity
android:name=".DisplayActivity"
android:label="@string/title_activity_display"
android:parentActivityName=".MainActivity">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".MainActivity" />
</activity>

  android:parentActivityName=".MainActivity"适用于API16及以上的SDK,为兼容16以下的SDK,还需要添加下面的

<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".MainActivity" />

  然后在DisplayActivity的onCreate()函数中添加getSupportActionBar().setDisplayHomeAsUpEnabled(true);语句启用返回按钮,如果minSdkVersion不小于11,则将上面那句替换为这句:

getActionBar().setDisplayHomeAsUpEnabled(true);

  以前写关于返回按钮的笔记的时候,并没有成功做出返回按钮,因为当时实验时用的SDK版本比较低,所以直接只用了

<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".MainActivity" />

  后来发现返回无效,单独只用android:parentActivityName=".MainActivity"也是无效的,今天两个放一起合用,返回按钮才起作用了。

关于ActionBar的更多相关文章

  1. Android中通过ActionBar为标题栏添加搜索以及分享视窗

    在Android3.0之后,Google对UI导航设计上进行了一系列的改革,其中有一个非常好用的新功能就是引入的ActionBar,他用于取代3.0之前的标题栏,并提供更为丰富的导航效果.Action ...

  2. Android 添加ActionBar Buttons

    一.在res/menu文件夹下创建Xml文件 跟标签为menu,设置item <?xml version="1.0" encoding="utf-8"?& ...

  3. mono for android 自定义titleBar Actionbar 顶部导航栏 修改 样式 学习

    以前的我是没有做笔记的习惯的,学习了后觉得自己能记住,但是最近发现很多学的东西都忘记了,所有现在一有新的知识,就记下来吧. 最近又做一个mono for android 的项目 这次调整比较大,上次做 ...

  4. Xamarin.Android之ActionBar与菜单

    一.选项卡 如今很多应用都会使用碎片以便在同一个活动中能够显示多个不同的视图.在Android 3.0 以上的版本中,我们已经可以使用ActionBar提供的Tab来实现这种效果,而不需要我们自己去实 ...

  5. 自定义ActionBar标题与菜单中的文字样式

    自定义标题文字样式 标题样式是ActionBar样式的一部分,所以要先定义ActionBar的样式 <style name="AppTheme" parent="A ...

  6. ActionBar设置自定义setCustomView()留有空白的问题

    先来看问题,当我使用ActionBar的时候,设置setCustomView时,会留有空白的处理 网上很多朋友说可以修改V7包到19,结果处理的效果也是不理想的. 下面贴出我觉得靠谱的处理代码 pub ...

  7. Android ActionBar 初探

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

  8. Menu与ActionBar的爱恨情仇

    最近在开发一款音乐播放器,在开发过程中遇到了一点小麻烦,通过android API搞清楚了Menu与ActionBar的爱恨情仇,写了个小Demo祭奠一下那些年我们陷进去的坑,有不对的地方请大神们批评 ...

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

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

随机推荐

  1. C#程序开发中经常遇到的10条实用的代码

    1 读取操作系统和CLR的版本 OperatingSystem os = System.Environment.OSVersion; Console.WriteLine("Platform: ...

  2. Net设计模式实例之简单工厂模式(Simple Factory Pattern)

    一.简单工厂模式简介(Bref Introduction) 简单工厂模式(Simple Factory Pattern)的优点是,工厂类中包含了必要的逻辑判断,根据客户端的选择条件动态实例化相关的类, ...

  3. Android 不一样的原生分享

    Android做分享功能百度一下就两种方案,其一是用系统原生的Activity,最终弹出一个对话框,下面这种的还好,像右图的那种就嫌弃了,上面提供的应用也相对杂,还记得有次测试还给鄙人提了个Bug:建 ...

  4. jQuery对话框右上角带关闭×

    jQuery弹出可关闭遮罩层:http://hovertree.com/texiao/layer/1/ 代码如下: <!DOCTYPE html> <html> <hea ...

  5. luogg_java学习_07_抽象类_接口_多态学习总结

    这篇博客总结了半天,希望自己以后返回来看的时候理解更深刻,也希望可以起到帮助初学者的作用. 转载请注明 出自 : luogg的博客园 , 抽象 一种专门用来做父类,被继承的. (模板) 格式: abs ...

  6. 解决使用Skia图形库时遇到的几个问题

    Skia是一个开源的2D图形库,提供通用的API,适用于工作中遇到的各种硬件和软件平台.这是谷歌浏览器Chrome OS,Android的图形引擎,Mozilla Firefox浏览器和Firefox ...

  7. virtualbox 虚拟机Ubuntu 传文件-共享

  8. 使用python发送和接收邮件

    关于电子邮件 大学之前,基本不用邮箱,所以基本感觉不到它的存在,也不知道有什么用:然而大学之后,随着认识的人越来越多,知识越来越广泛,邮箱已然成为很重要的通讯工具,大学一些课程作业需要有邮箱发给老师, ...

  9. Windows下安装Nginx+php+mysql环境

    系统:Windows 7 64位系统 安装之前,首先下载软件: Nginx: http://nginx.org/en/download.html PHP Stable PHP 5.6.26: http ...

  10. 聊聊JVM的年轻代

    1.为什么会有年轻代 我们先来屡屡,为什么需要把堆分代?不分代不能完成他所做的事情么?其实不分代完全可以,分代的 唯一理由就是优化GC性能.你先想想,如果没有分代,那我们所有的对象都在一块,GC的时候 ...