沉浸式状态栏

SystemUI StatusBar流程梳理 SystemUI之StatusBar状态栏 布局结构 下拉菜单、状态栏都是属于statusbar,结构树上也是属于顶层的super_status_bar.xml(StatusBarWindowView) 从上图可以看出顶层树是super_status_bar,之后会走两个分支status_bar_container和status_bar_expanded。 status_bar_expanded下拉菜单,分快捷图标和通知栏。 status_bar_container状态栏.. 阅读详情

快速实现:

compile 'com.githang:status-bar-compat:latest.integration'

StatusBarCompat.setStatusBarColor(this, color, lightStatusBar);

3.0(API 11)

getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN);

两个属性:STATUS_BAR_HIDDEN     STATUS_BAR_VISIBLE

 

4.0(API 14)

后来在4.0上,扩充了针对状态栏操作的功能,把3.0种加入的STATUS_BAR_HIDDEN 换成了SYSTEM_UI_FLAG_LOW_PROFILE , STATUS_BAR_VISIBLE 也换成了 SYSTEM_UI_FLAG_VISIBLE。另外还加入了SYSTEM_UI_FLAG_HIDE_NAVIGATION这个新标签。

SYSTEM_UI_FLAG_HIDE_NAVIGATION 故名思意就是可以通过设置该标签,使得底部的导航栏隐藏。Android也正是从4.0版本开始可以对底部导航栏进行操作的。同样如果用户与页面有任何交互,该标签会被清除,样式会还原。

 

4.1(API 16)

在4.1版本中,Android团队进一步强化了setSystemUiVisibility的作用,又在4.0的基础上增加了以下一些属性:

SYSTEM_UI_FLAG_FULLSCREEN 全屏状态,视觉上的作用和WindowManager.LayoutParams.FLAG_FULLSCREEN一样。如果你的应用只是某几个页面需要使用全屏模式,建议使用该标签来设置。因为此标签更容易清除。

SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN / SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION

这两个属性和上面提到的FULLSCREEN和HIDE_NAVIGATION属性很像,只是多了一个LAYOUT。区别是,这两个属性并不会真正隐藏状态栏或者导航栏,只是把整个content的可布局区域延伸到了其中。

SYSTEM_UI_FLAG_LAYOUT_STABLE 此View一般和上面几个提到的属性一起使用,它可以保证在系统控件隐藏显示时,不会让本view重新layout。也就是你手动隐藏状态栏或导航栏时,所有的view也都待在本来的位置上不会动。

 

4.4(API 19)

从Android 4.4 开始,我们才能真正做到以上这种效果,在API 19上加入了以下两个风格属性,使用这两种属性,可以设置状态栏或者导航栏的背景为透明。

android:windowTranslucentStatus

android:windowTranslucentNavigation

设置这两个属性后,需要注意的是,它在Android 4.4 上的效果和 Android 5.0 和之后版本上,表现出的效果不太一样。我们来实地演示下,在values-v19目录下的styles.xml中加入以下代码。

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="android:windowTranslucentStatus">true</item>
<item name="android:windowTranslucentNavigation">true</item> </style>

5.0(API 21)

android:statusBarColor

android:navigationBarColor

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {

getWindow().getDecorView().setSystemUiVisibility( View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN );

}

然后在风格中加入一条,让状态栏背景透明

<item name="android:statusBarColor">@android:color/transparent</item>

android:fitsSystemWindows="true"

<android.support.v7.widget.Toolbar

android:id="@+id/toolbar"

android:background="#00AEFF"

android:fitsSystemWindows="true"

android:layout_width="match_parent"

android:layout_height="wrap_content"/>

 

6.0(API 23)

6.0上加入了SYSTEM_UI_FLAG_LIGHT_STATUS_BAR标签和android:windowLightStatusBar风格属性,终于你可以改变状态栏中的内容颜色了。设置后,状态栏的内容会变成暗色调,这样即使在浅色的背景上显示,也一样能看清了

地址  https://blog.youkuaiyun.com/maosidiaoxian/article/details/51734895

地址  https://juejin.im/entry/5987c5a36fb9a03c3a25bfb6

【Flutter】如何完成一个透明沉浸式状态栏 flutter透明沉浸式状态栏 阅读详情

相关推荐

Flutter 沉浸式状态栏 及 修改状态栏字体颜色

效果图 实现代码 import 'dart:io'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; void main() { runApp( MaterialApp( debugShowCheckedModeBanner: false, title: '测试程序', theme: ThemeData(primaryColor: Colors

涂文远的博客 1687

一行代码修改安卓状态栏颜色

现状 不同的安卓版本以及不同的系统对状态栏的设置方法各不相同。 解决方案 由于不同的手机系统设置各不相同,这里推荐使用github上的一个成熟的解决方案status-bar-compat。 StatusBarCompat是一个用于设置系统状态栏颜色的兼容库,兼容Android 4.4.2(API 19)以上,使用简单,仅需要一行代码的调用。 使用方法 1. 声明仓库 确保在你的根项目...

oaimgo的博客 1518

Android 沉浸式状态栏

什么是沉浸式? 传统的手机状态栏是呈现出黑色条状的,有的和手机主界面有很明显的区别。这一样就在一定程度上牺牲了视觉宽度 界面面积变小。 沉浸式是APP界面图片延伸到状态栏, 应用本身沉浸于状态栏,所以如果第三方的软件没有为状态栏分配图片,那么自然就是黑色。顶端的状态栏和下面的虚拟按键都隐藏,需要的时候从边缘划出。 沉浸模式。当启用该模式,应用程序的界面将占据整个屏幕,系统自动将隐藏系统的状态栏和导航栏,让应用程序内容可以在最大显示范围呈现,增加大屏体验,而当需要查看通知的时候只需要从顶部向下滑动就能呼

码点 830

Android 如何更改状态栏颜色

在项目的build.gradle中声明以下依赖: compile 'com.githang:status-bar-compat:latest.integration' 在你的Activity中(最好是setContentView()被调用之后)添加以下代码: StatusBarCompat.setStatusBarColor(this, color, lightStatusBar);...

qq910441958的博客 447

Android沉浸式状态栏实现与实战详解

完整的透明状态栏主题应在styles.xml中明确定义,并根据目标 API 级别进行差异化配置。</style></style>代码逻辑分析- v19 版本使用实现半透明;- v21 起使用实现真正透明;在 Lollipop 上必须显式开启。

weixin_35973118的博客 1073

Android-StatusBarCompat是一个用于设置系统状态栏颜色的兼容库

StatusBarCompat是一个用于设置系统状态栏颜色的兼容库,兼容Android 4.4.2(API 19)以上,使用简单,仅需要一行代码的调用。完美兼容小米,魅族,华为…。

项目中发现

状态栏第三方//状态栏依赖 compile 'com.githang:status-bar-compat:latest.integration'调用//状态栏改变颜色 StatusBarCompat.setStatusBarColor(this, Color.rgb(254,136,31),true); //将布局下压状态栏不覆盖 布局文件中加此 android:fitsSystemW...

qq_40782129的博客 490

Vue3多级路由缓存失效的深度解析与实战解决方案

本文深度解析了Vue3项目中多级路由嵌套下keep-alive缓存失效的根本原因,并提供了三种实战解决方案。通过剖析组件树、router-view与keep-alive的协作机制,揭示了缓存无法穿透多层router-view的技术本质。文章对比了路由扁平化重构、状态管理配合路由守卫以及使用社区插件等方案的优缺点与适用场景,为开发者解决这一常见难题提供了清晰的选型指导。

weixin_29001423的博客 271

Android 沉浸式状态栏攻略 让你的状态栏变色吧

最后为了帮助大家深刻理解Android相关知识点的原理以及面试相关知识,这里放上相关的我搜集整理的24套腾讯、字节跳动、阿里、百度2019-2021BAT 面试真题解析,我把大厂面试中常被问到的技术点整理成了视频和PDF(实际上比预期多花了不少精力),包知识脉络 + 诸多细节。还有 高级架构技术进阶脑图 帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习。Android 基础知识点Java 基础知识点Android 源码相关分析常见的一些原理性问题。

2401_83412285的博客 1180

自动驾驶中的多传感器融合实战:用卡尔曼滤波搞定毫米波雷达与摄像头航迹对齐

本文深入探讨了自动驾驶中多传感器融合的实战技术,重点介绍了如何使用卡尔曼滤波实现毫米波雷达与摄像头的航迹对齐。通过分析传感器特性差异、时空同步挑战及工程化实现步骤,提供了包括状态向量定义、观测矩阵设计和故障检测机制在内的完整解决方案,最终实现0.15米以内的高精度航迹对齐。

weixin_28728495的博客 411

STM32异常与中断过程详解

1. 异常与中断概念引入 异常主要是指来自CPU内部的意外事件,比如执行了未定义指令、算术溢出、除零运算等发生在CPU内部的意外事件,这些异常的发生,会引起CPU运行相应的异常处理程序;中断一般来自硬件(如片上外设、外部I/O输入等)发生的事件,当这些硬件产生中断信号时,CPU会暂停当前运行的程序,转而去处理相关硬件的中断服务程序。但无论是异常还是中断,都会引起程序执行偏离正常的流程,转而去执行异常/中断的处理函数。 下面对异常和中断的介绍,如果中断信号的产生原因来自CPU内部,则称之为异常;如果中断信号来

luobeihai的博客 1万+

Android开发 透明状态栏 沉浸式状态栏的实现

Android 透明状态栏Android 透明状态栏实现平台设置所需要的颜色填满屏幕状态栏透明化Padding调整状态栏颜色文字颜色设置(可选)颜色填充任务完成! 最近在做毕业设计,想要实现沉浸式状态栏,在网上搜索了好多的文章后拼拼凑凑,才实现了这个功能。也算是第一次做Android开发,所以写个文章纪念一下,并且分享给大家。 Android 透明状态栏 实现平台 Android 10 ,Flyme8.0,MEIZU 17 pro。 理论上应该支持所有的Android 6.0 以上的系统。 设置所需要的颜

JiangYH 5429

第十一届全国大学生GIS应用技能大赛——广西区域发展布局示意图

我们需要制作一幅广西区域发展布局示意图,最终成图参考“数据”文件夹中的广西区域发展布局示意图.png。地图使用的投影坐标系是 Asia_North_Albers_Equal_Area_Conic,其中地理坐标系是China_Geodetic_Coordinate_System_2000,中央经线东经 105°,标准纬线是北纬 25°和北纬 47°,出图比例尺 1:4,780,000。

@HNUSTer的博客 7799

hbuilder 沉浸式状态栏

1.在mainfest.json的plus中以下位置添加statusbar内容 "plus": { "statusbar":{ "immersed": true/*沉浸式状态栏*/ } } 2、获取状态栏高度 方法一: var immersed = 0; var ms=(/Html5Plus\/.+\s\(.*(Immersed\/(\d+\.?\d*).*)\)/gi).exec(navigator.userAgent); if(ms&&ms.lengt

Lycoris_Red的博客 1345

直流有刷电机H桥控制实战:从原理图到PWM调速(附DR70x驱动芯片详解)

本文详细解析了直流有刷电机H桥控制的核心技术,从原理图设计到PWM调速实现,特别针对DR70x驱动芯片的应用进行了深入探讨。文章涵盖了H桥电路的电流路径分析、PWM调速的工程细节、DR70x驱动芯片的工作原理及典型应用电路设计,并提供了实测波形分析和故障排查方法,为工程师提供了一套完整的解决方案。

weixin_29215815的博客 149

QMT量化交易桥接方案深度对比:从MiniQMT淘汰说起

量化交易系统中的API桥接,本质是解决本地终端与底层交易引擎之间的通信瓶颈。其核心原理在于绕过GUI封装、直连确定性执行层,从而获得低延迟、高可靠、可监控的指令通路。技术价值体现在策略实盘一致性提升、毫秒级响应保障及运维可控性增强。典型应用场景包括打板策略、T+0套利、高频网格等对时效与稳定性双敏感的自动化交易。本文聚焦国金证券QMT专业版生态,系统剖析DLL注入、HTTP反向代理、IPC共享内存与官方HTTP API四大桥接路径的性能边界、合规风险与工程落地成本,尤其深入解析qmt终端 client is

weixin_33892359的博客 457

Android 沉浸式状态栏的实现

​ 一提到沉浸式状态栏,第一个浮现在脑海里的词就是“碎片化”。碎片化是让 Android 开发者很头疼的问题,相信没有哪位开发者会不喜欢“write once, run anywhere”的感觉,碎片化让我们不得不耗费精力去校验代码在各个系统版本、各个机型上是否有效。因此以前我一直把沉浸式状态栏看作一块难啃的骨头,但是该面对的问题迟早还是要面对,所以,不如就此开始吧。 沉浸式状态栏的实现 方法一:通过设置 Theme 主题设置状态栏透明 因为 API21 之后(也就是 android 5.0 之后)的状态栏

Grekit_Sun的博客 2329

【Python】解决 ERROR: Exception:Traceback (most recent call last):(亲测有效)

1、遇到问题2、问题解决

Fanjufei的博客 1万+

安卓沉浸式状态栏

安卓沉浸式状态栏前言安卓版本Android4.4之前Android4.4(API 19) - Android 5.0(API 21)1.图片沉浸1.1 xml实现1.2代码实现2.ToolBar沉浸2.1xml实现2.1.1 设置 fitsSystemWindows 属性2.1.2 布局里添加占位状态栏2.2代码实现2.2.1 代码设置fitsSystemWindows 属性2.2.2 布局里添加...

qq_41775852的博客 2512

【2022】人工智能☆✨

1. 朴素⻉叶斯⽅法是⼀种 ( ) ⽅法。A.机器学习的分类B.不确定性推理C.知识表示答案:A解析:朴素贝叶斯分类器是基于贝叶斯定理与特征条件独立假设的分类方法。它通过学习训练数据集来预测未知数据的类别标签,因此属于机器学习中的监督学习分类方法。选项B不确定性推理和选项C知识表示虽然与朴素贝叶斯方法有一定的关联,但它们并不是朴素贝叶斯方法的主要应用领域或定义特性。2. 关于启发式搜索描述正确的是 ( )。

super_mochi1 393

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

android图片状态栏实现沉浸式状态栏

沉浸式状态栏实现起来的文章网上有很多了,不过再MD中有一个图片和toolbar一起使用,还会产生过度效果的沉浸式状态栏,像下面这样 标题栏XML代码如下 <android.support.design.widget.AppBarLayout android:layout_width="match_parent" android:layout_height

气派的欠账包店 6208

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

沉浸式状态栏的实现;

一.在Java代码中控制 1.在Java代码中将状态栏设为半透明 Window window = getWindow(); window.setFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS, WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);//设置状态栏为半透明 这

AL菜菜的专栏 910

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

关于 沉浸式状态栏

参考:https://www.jianshu.com/p/752f4551e134 https://blog.csdn.net/guolin_blog/article/details/51763825#commentsedit 沉浸式状态栏 // 方法一 实现 全屏显示 点击屏幕会消失; if (Build.VERSION.SDK_INT > Build...

灬灬的专栏 306

沉浸式状态栏完美解决

沉浸式状态栏完美解决 首先,附上所需要的工具类 public class OSUtils { public static final String ROM_MIUI = "MIUI"; public static final String ROM_EMUI = "EMUI"; public static final String ROM_FLYME = "FLYME";...

SEP.w的博客 852
上一篇: Fragment预防预加载
下一篇: 反射
Android_Code
博客等级 码龄8年 5粉丝 21原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值