Android官方开发文档Training系列课程中文版:添加ActionBar之ActionBar浮层效果

原文地址 : http://android.xsoftlab.net/training/basics/actionbar/overlaying.html

浮层效果的ActionBar

默认情况下,ActionBar总是会出现在Activity窗口的顶部,这样会稍微的减少Activity布局的剩余空间。如果需要在用户使用的时候隐藏和显示ActionBar,可以通过调用ActionBar的hide()方法和show()方法。然而,这会让Activity重新计算并且重新绘制。

为了避免ActionBar显示隐藏的时候重新计算Activity的大小,你可以使用ActionBar的浮层模式。在浮层模式下,Activity的布局将会使用所有的可用空间,就好像ActionBar不在那里,然后系统会将ActionBar绘制在布局的顶层。这会遮住布局顶部的一些空间,但是当ActionBar显示隐藏的时候不需要重新计算布局的尺寸。它变换的时候是无缝连接的,非常平滑。

Tips: 如果想使在ActionBar后面那部分布局可见,创建一个自定义的风格,并指定一个半透明的背景,就像上面途中显示的效果一样。关于如何自定义ActionBar的背景,请看上一章的课程。

启动浮层模式

如果要打开ActionBar的浮层模式,需要床架一个自定义的主题,并且继承已存在的ActionBar主题,然后设置android:windowActionBarOverlay的属性为true。

为Android 3.0及高版本提供支持

如果设置的minSdkVersion是11或大于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>

为Android 2.1及高版本提供支持

如果APP为了运行在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>

这里也应该注意到这里定义了两个windowActionBarOverlay属性样式:一个是android:前缀开头的,另一个没有。有android:前缀的是用于包含有风格的Android平台版本,而没有带前缀的则是为了从支持库读取风格的老版本。

指定布局的上外边距

当ActionBar处于浮层模式的时候,它会遮挡本来应该处于可见状态的部分布局。为了确保这部分布局一直可见,在View的顶部使用添加外边距或者内边距,并设置值为ActionBar的高度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>

如果使用了支持库的话,则需要将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>

在这里,没有前缀的?attr/actionBarSize可工作于所有的版本上,包括Android 3.0及更高的版本。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/479342.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

美团大规模微服务通信框架及治理体系OCTO核心组件开源

微服务通信框架及治理平台OCTO作为美团基础架构设施的重要组成部分&#xff0c;目前已广泛应用于公司技术线&#xff0c;稳定承载上万应用、日均支撑千亿级的调用。业务基于OCTO提供的标准化技术方案&#xff0c;能够轻松实现服务注册/发现、负载均衡、容错处理、降级熔断、灰度…

领域应用 | 知识结构化在阿里小蜜中的应用

本文转载自公众号&#xff1a;DataFunTalk。分享嘉宾&#xff1a;李凤麟 阿里巴巴 算法专家文章整理&#xff1a;付一韬内容来源&#xff1a;2019知识图谱前沿技术论坛出品社区&#xff1a;DataFun导读&#xff1a;阿里小蜜是阿里巴巴服务领域的重要人工智能产品&#xff0c;是…

内卷的世界,我们是否可以换一种思维生活?

文 | Flood Sung源 | 知乎前言今年最热门的词汇之一当属内卷了。似乎很多行业都由于份额有限而陷入内卷当中。最火的或许是清华学生的这张图&#xff0c;“骑车写代码”&#xff1a;图片来自网络虽然后来知道是这位同学怕关了屏幕程序就断了&#xff0c;但这不禁让人思考&#…

【Python】解决urllib返回http error 503问题

【Python】解决urllib返回http error 503问题&#xff1a;https://www.cnblogs.com/tiandsp/p/13783038.html

LeetCode 513. 找树左下角的值(按层遍历 queue)

1. 题目 给定一个二叉树&#xff0c;在树的最后一行找到最左边的值。 2. 解题 利用队列按层次遍历顺序&#xff0c;根右左&#xff0c;要求最左边的一个&#xff0c;所以根右左&#xff0c;最后一个队列元素就是答案 class Solution { public:int findBottomLeftValue(TreeN…

Android官方开发文档Training系列课程中文版:支持不同的设备之支持不同的语言

原文地址 : http://android.xsoftlab.net/training/basics/supporting-devices/index.html 支持不同的设备 在世界上&#xff0c;Android设备以很多种形状和尺寸呈现。正因为有这么多种设备&#xff0c;你的应用有机会被巨多的用户所使用。为了在Android上尽可能的成功&…

Hadoop YARN:调度性能优化实践

背景 YARN作为Hadoop的资源管理系统&#xff0c;负责Hadoop集群上计算资源的管理和作业调度。 美团的YARN以社区2.7.1版本为基础构建分支。目前在YARN上支撑离线业务、实时业务以及机器学习业务。 离线业务主要运行的是Hive on MapReduce&#xff0c; Spark SQL为主的数据仓库作…

python list保存至csv文件

python list保存至csv文件&#xff1a;https://blog.csdn.net/qq_43372138/article/details/84110624?utm_mediumdistribute.pc_aggpage_search_result.none-task-blog-2alltop_click~default-1-84110624.nonecase&utm_termpython%E5%B0%86list%E5%86%99%E5%85%A5csv&…

LeetCode 39. 组合总和(排列组合 回溯)

1. 题目 给定一个无重复元素的数组 candidates 和一个目标数 target &#xff0c;找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的数字可以无限制重复被选取。 说明&#xff1a; 所有数字&#xff08;包括 target&#xff09;都是正整数。 解集不能包…

深度学习平台的未来:谁会赢得下半场?

今天这篇文章无意引战&#xff0c;只想从历史发展的角度来谈谈深度学习大背景下的开发工具变迁&#xff0c;以及对未来发展趋势的想象。TensorFlow&#xff1a;无力回天的深度学习里程碑不知道有多少小伙伴是2017年以前入坑深度学习的&#xff0c;那时候人工智能概念火热&#…

论文浅尝 | 基于属性嵌入的知识图谱实体对齐

论文笔记整理&#xff1a;王中昊&#xff0c;天津大学硕士&#xff0c;方向&#xff1a;自然语言处理。来源&#xff1a;AAAI2019论文链接&#xff1a; https://doi.org/10.1609/aaai.v33i01.3301297概述知识图谱之间的实体对齐的任务目标是去找到那些在两个不同的知识图谱上表…

Android官方开发文档Training系列课程中文版:支持不同的设备之支持不同的屏幕

原文地址 : http://android.xsoftlab.net/training/basics/supporting-devices/screens.html#create-bitmaps Android设备屏幕分为两个通用的属性&#xff1a;尺寸和密度。你应该期待应用将会被安装在屏幕的密度和尺寸都在范围内的设备上。正因为这样&#xff0c;你应该包含一…

基本功 | Litho的使用及原理剖析

1. 什么是Litho&#xff1f; Litho是Facebook推出的一套高效构建Android UI的声明式框架&#xff0c;主要目的是提升RecyclerView复杂列表的滑动性能和降低内存占用。下面是Litho官网的介绍&#xff1a; Litho is a declarative framework for building efficient user interfa…

图解GPT-2(完整版)!

图解GPT-2&#xff08;完整版&#xff09;&#xff01;

论文浅尝 | 基于深度强化学习将图注意力机制融入知识图谱推理

论文笔记整理&#xff1a;陈名杨&#xff0c;浙江大学直博生。Introduction知识图谱&#xff08;KGs&#xff09;在很多NLP的下游应用中起着越来越重要的作用。但是知识图谱常常是不完整的&#xff0c;所以解决知识图谱补全的任务也非常重要。主要有三种方法来完成知识图谱补全…

Android官方开发文档Training系列课程中文版:支持不同的设备之支持不同的平台版本

原文地址 : http://android.xsoftlab.net/training/basics/supporting-devices/platforms.html 每当APP使用了Android所提供的最新版的API时&#xff0c;应用应该继续对老版本提供支持&#xff0c;直到所有的设备都更新到最新版。这一节将会展示如何使用更流行的新版本API时还…

聊聊如何提升推荐系统的结果多样性

文 | 洪九(李戈)源 | 知乎个性化推荐系统的出现为处理信息过载问题提供了一个有效的工具&#xff0c;已经成为互联网各大平台(电商、信息流等)的标配&#xff0c;并在技术(个性化召回、个性化排序等)上取得了长足的发展&#xff0c;逐渐从传统模型过度到深度学习时代。但是&…

论文浅尝 | GNN with Generated Parameters for Relation Extraction

论文笔记整理&#xff1a;申时荣&#xff0c;东南大学博士生。地址&#xff1a;https://arxiv.org/pdf/1902.00756.pdf来源&#xff1a;ACL2019在许多自然语言处理任务&#xff08;例如关系提取&#xff09;中&#xff0c;多跳关系推理是必不可少的&#xff0c;而图神经网络&am…

大众点评信息流基于文本生成的创意优化实践

1. 引言 信息流是目前大众点评除搜索之外的第二大用户获取信息的入口&#xff0c;以优质内容来辅助用户消费决策并引导发现品质生活。整个大众点评信息流&#xff08;下文简称点评信息流&#xff09;围绕个性化推荐去连接用户和信息&#xff0c;把更好的内容推荐给需要的用户。…

LeetCode 701. 二叉搜索树中的插入操作(二叉查找树/插入)

1. 题目 给定二叉搜索树&#xff08;BST&#xff09;的根节点和要插入树中的值&#xff0c;将值插入二叉搜索树。 返回插入后二叉搜索树的根节点。 保证原始二叉搜索树中不存在新值。 注意&#xff0c;可能存在多种有效的插入方式&#xff0c;只要树在插入后仍保持为二叉搜索…