Android官方文档翻译 十一 2.4Overlaying the Action Bar
Overlaying the Action Bar
叠加菜单栏
This lesson teaches you to
这节课教给你:
Enable Overlay Mode
启用叠加模式
For Android 3.0 and higher only
对于仅支持Android 3.0及其以上版本
For Android 2.1 and higher
对于支持Android 2.1及其以上版本
Specify Layout Top-margin
指定布局的顶边距
You should also read
你还需要阅读
- Styles and Themes
样式和主题
By default, the action bar appears at the top of your activity window, slightly reducing the amount of space available for the rest of your activity’s layout. If, during the course of user interaction, you want to hide and show the action bar, you can do so by calling hide() and show() on the ActionBar. However, this causes your activity to recompute and redraw the layout based on its new size.
默认情况下,菜单栏展现在你的activity界面的顶部,这会轻微的减少你activity的布局的其他剩余空间的总数。通过用户界面的这节课程我们知道,如果你想要隐藏和展现菜单栏,你可以通过对菜单栏调用hide()和show()来实现。然而,这会造成你的activity要根据它的新的大小重新计算和绘制布局。
To avoid resizing your layout when the action bar hides and shows, you can enable overlay mode for the action bar. When in overlay mode, your activity layout uses all the space available as if the action bar is not there and the system draws the action bar in front of your layout. This obscures some of the layout at the top, but now when the action bar hides or appears, the system does not need to resize your layout and the transition is seamless.
为了避免在菜单栏隐藏和展示时重新调整布局,你可以启用菜单栏的叠加模式。在叠加模式中,就好像是菜单栏不在,你的activity布局会使用所有的可用空间,并且系统会在你的布局前面绘画出菜单栏。这会让顶部的一些布局变得模糊,但是现在当菜单栏隐藏或展现的时候,系统就不需要重新调整你的布局,可以实现无缝隙转换。
Tip: If you want your layout to be partially visible behind the action bar, create a custom style for the action bar with a partially transparent background, such as the one shown in figure 1. For information about how to define the action bar background, read Styling the Action Bar.
技巧:如果你想要你的布局部分在菜单栏后面显现,请用一个特别地透明背景给菜单栏创建一个自定义样式,比如图1中展现的那样。关于如何定义菜单栏的背景,请阅读Styling the Action Bar。

Figure 1. Gallery’s action bar in overlay mode.
图1 叠加模式中Gallery的菜单栏
Enable Overlay Mode
启用叠加模式
To enable overlay mode for the action bar, you need to create a custom theme that extends an existing action bar theme and set the android:windowActionBarOverlay property to true.
为了启用菜单栏的叠加模式,你需要创建一个自定义主题,让它继承一个已经存在了的菜单栏主题,然后设置android:windowActionBarOverlay属性为真。
For Android 3.0 and higher only
对于仅仅支持Android 3.0及其以上版本
If your minSdkVersion is set to 11 or higher, your custom theme should use Theme.Holo theme (or one of its descendants) as your parent theme. For example:
如果你的minSDKVersion设置为11或者更高,你的自定义主题应该使用Theme.Holo主题(或者它的后代中的一个)作为你的父主题。例如:
<resources>
<!-- the theme applied to the application or activity -->
<style name="CustomActionBarTheme"
parent="@android:style/Theme.Holo">
<item name="android:windowActionBarOverlay">true</item>
</style>
</resources>
For Android 2.1 and higher
对于支持Android 2.1或者更高版本
If your app is using the Support Library for compatibility on devices running versions lower than Android 3.0, your custom theme should use Theme.AppCompat theme (or one of its descendants) as your parent theme. For example:
如果你的应用程序使用Support Library以兼容运行低于Android 3.0版本的机器,你的自定义主题应该使用 Theme.Appcompat主题(或者它的后代之一)作为你的父主题。例如:
<resources>
<!-- the theme applied to the application or activity -->
<style name="CustomActionBarTheme"
parent="@android:style/Theme.AppCompat">
<item name="android:windowActionBarOverlay">true</item>
<!-- Support library compatibility -->
<item name="windowActionBarOverlay">true</item>
</style>
</resources>
Also notice that this theme includes two definitions for the windowActionBarOverlay style: one with the android: prefix and one without. The one with the android: prefix is for versions of Android that include the style in the platform and the one without the prefix is for older versions that read the style from the Support Library.
你还可以注意到这个主题包含对于windowActionBarOverlay样式的两种定义:一种以android:作为其前缀,另一种则没有。以android:作为前缀的那种是对于在平台中已经包含此样式的Android版本,另一种没有前缀的是对于旧版本,需要在Support Library中读取这个主题。
Specify Layout Top-margin
指定布局的顶边距
When the action bar is in overlay mode, it might obscure some of your layout that should remain visible. To ensure that such items remain below the action bar at all times, add either margin or padding to the top of the view(s) using the height specified by actionBarSize. For example:
在叠加模式中,菜单栏可能会遮盖你的一些本来应该保持可见的布局。为了保证这些项目在所有的时间都保持低于菜单栏,需要使用actionBarSize已经定义好的高度给顶部的视图添加边界或者内边距。例如:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingTop="?android:attr/actionBarSize">
...
</RelativeLayout>
If you’re using the Support Library for the action bar, you need to remove the android: prefix. For example:
如果你使用Support Library中的菜单栏,你需要移除android:这个前缀。例如:
<!-- Support library compatibility -->
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingTop="?attr/actionBarSize">
...
</RelativeLayout>
In this case, the ?attr/actionBarSize value without the prefix works on all versions, including Android 3.0 and higher.
在这种情况下,?attr/actionBarSize值在所有版本中都没有前缀,包括Android 3.0 及其以上版本。
NEXT CLASS: SUPPORTING DIFFERENT DEVICES
下一课:支持不同设备
这是我自己翻译的,如果您发现其中有重要错误,敬请指出,万分感谢。
Android官方文档翻译 十一 2.4Overlaying the Action Bar的更多相关文章
- Android官方文档翻译 十 2.3Styling the Action Bar
Styling the Action Bar 设计菜单栏的样式 This lesson teaches you to 这节课教给你 Use an Android Theme 使用一个Android主题 ...
- Android官方文档翻译 七 2.Adding the Action Bar
Adding the Action Bar 增加一个Action Bar(工具栏) The action bar is one of the most important design element ...
- Android官方文档翻译 八 2.1Setting Up the Action Bar
Setting Up the Action Bar 建立Action Bar This lesson teaches you to 这节课教给你 Support Android 3.0 and Abo ...
- Android UI开发第二十四篇——Action Bar
Action bar是一个标识应用程序和用户位置的窗口功能,并且给用户提供操作和导航模式.在大多数的情况下,当你需要突出展现用户行为或全局导航的activity中使用action bar,因为acti ...
- 【转】Android UI开发第二十四篇——Action Bar
Action bar是一个标识应用程序和用户位置的窗口功能,并且给用户提供操作和导航模式.在大多数的情况下,当你需要突出展现用户行为或全局导航的activity中使用action bar,因为acti ...
- Android官方文档翻译 九 2.2Adding Action Buttons
Adding Action Buttons 增加动作按钮 This lesson teaches you to 这节课教给你 Specify the Actions in XML 在XML中指定动作 ...
- android官方文档翻译(不断更新中。。。)
最近在自学android,抽空把官方文档的guide跟training差不多看了一遍,又对比了一些书籍,感觉还是官方文档讲得比较好,所以自己计划把官方文档翻译一下,方便自己的知识巩固以及复习查找,由于 ...
- Android官方文档翻译 十七 4.1Starting an Activity
Starting an Activity 开启一个Activity This lesson teaches you to 这节课教给你 Understand the Lifecycle Callbac ...
- Android官方文档翻译 十五 3.3Supporting Different Platform Versions
Supporting Different Platform Versions 支持不同的平台版本 This lesson teaches you to 这节课教给你 Specify Minimum a ...
随机推荐
- [BUUCTF]PWN16——jarvisoj_level2
[BUUCTF]PWN16--jarvisoj_level2 附件 步骤 例行检查,32位,开启了nx保护 试运行一下程序 32位ida载入,shift+f12查看一下程序里的字符串,发现了syste ...
- 调配资源(Project)
<Project2016 企业项目管理实践>张会斌 董方好 编著 当资源过度分配了,肿么办? 比如前面的例子,某吃货甲,一天之内给他分配了9.6个工时的吃量,这怎么可以呢,让人加班是不厚道 ...
- 一台电脑如何安装多个版本的JDK及其说明
一.安装多个版本的JDK及其说明 1.准备多个版本的JDK 需要请点击下载 2.安装过程,除了根据需要更改安装路径,其他"傻瓜式"安装("下一步"),各版本都是 ...
- java 多线程:线程池的使用Executors~ExecutorService; newCachedThreadPool;newFixedThreadPool(int threadNum);ScheduledExecutorService
1,为什么要使用线程池:Executors 系统启动一个新线程的成本是比较高的,因为它涉及与操作系统交互.在这种情形下,使用线程池可以很好地提高性能,尤其是当程序中需要创建大量生存期很短暂的线程时,更 ...
- java 输入输出IO流:FileOutputStream FileInputStream
什么是IO: 生活中,你肯定经历过这样的场景.当你编辑一个文本文件,忘记了 ctrl+s ,可能文件就白白编辑了.当你电脑上插入一个U盘,可以把一个视频,拷贝到你的电脑硬盘里.那么数据都是在哪些设备上 ...
- Java abstract 抽象类 和interface接口的异同点
abstract 抽象类 和interface接口的异同点 相同点: 抽象类和接口都不能实例化,他们都位于继承树顶端,被其他类实现和继承 都可以包含抽象方法,实现接口或者继承抽象类的非抽象类(普通类) ...
- layDate设置开始日期选择框和结束日期选择框 之间的相互验证方法
var startDate = laydate.render({ elem: '#_select_start_date', //结束日期框的ID type: 'date', done: functio ...
- 【蓝桥杯】第十二届蓝桥杯砝码称重(Python题解)
@ 目录 题目 [80分] 思路 知识点 代码 题目 [80分] 你有一架天平和N个砝码,这N个砝码重量依次是W1,W2,--,WN请你计算一共可以称出多少种不同的重量? 注意砝码可以放在天平两边. ...
- 再谈多线程模型之生产者消费者(多生产者和单一消费者 )(c++11实现)
0.关于 为缩短篇幅,本系列记录如下: 再谈多线程模型之生产者消费者(基础概念)(c++11实现) 再谈多线程模型之生产者消费者(单一生产者和单一消费者)(c++11实现) 再谈多线程模型之生产者消费 ...
- Java Web大作业——编程导航系统
title: Java Web大作业--编程导航系统 categories: - - 计算机科学 - Java abbrlink: 40bc48a1 date: 2021-12-29 00:37:35 ...