总结系列-一文搞懂沉浸式状态栏

article/2025/8/24 3:57:42
近期做到与状态栏相关一些需求,网上关于沉浸式状态栏的文章有很多,基本上都先讲一堆概念,然后接着推出一个自己写的轮子,这类轮子面对很多不同场景的情况不能百分之百满足使用需求,过度地使用轮子也往往会让开发者不了解代码到底是怎么实现沉浸式的,基于之上,参考一些文章及自身经验总结此篇文章. 需要注意的是,并没有沉浸式状态栏这一概念,只有沉浸式模式和透明状态栏的概念。
(注: 此篇非原理,非解决方案封装类,偏于实用与查阅对比,底部参考链接有GitHub上的轮子供参考)
实现沉浸式状态栏主要跟以下四个Api相关:
  • View#setSystemUiVisibility()
  • Window#addFlags()
  • View#setFitsSystemWindows
  • Window#setStatusBarColor()

View#setSystemUiVisibility()及其各种Flags

int uiOptions = View.SYSTEM_UI_FLAG_FULLSCREEN;        getWindow().getDecorView() .setSystemUiVisibility(uiOptions)
setSystemUiVisibility (int visibility)传入的实参类型如下:( 基本上可以定义为状态栏和Activity之间的位置关系 )
WindowManager.LayoutParams.FLAG_FULLSCREEN
隐藏状态栏(在代码中设置)
View.SYSTEM_UI_FLAG_VISIBLE
14   系统默认 显示状态栏和导航栏
状态栏和Activity共存,Activity不全屏显示。也就是应用平常的显示画面
View. SYSTEM_UI_FLAG_FULLSCREEN   
16  状态栏隐藏,效果同设置WindowManager.LayoutParams.FLAG_FULLSCREEN ,  Activity全屏显示,且状态栏被覆盖掉
视图全屏并隐藏状态栏,当用户交互时(如下滑状态栏)会恢复隐藏的状态栏(例子:电子书阅读)
缺点: 进入Activity会产生一个从非全屏到全屏的闪动效果 ,( 恢复状态栏视图下移 )
可以使用 SYSTEM_UI_FLAG_LAYOUT_FULLSCREE 标志,让应用的内容区域显示在状态栏的后面,还可以配合 SYSTEM_UI_FLAG_LAYOUT_STABLE 标志使用,让布局保持稳定
View. SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
16   视图延伸至状态栏区域,状态栏上浮于视图之上   (视图全屏且不会产生闪动,状态栏会覆盖在视图上面)
Activity全屏显示,但是状态栏不会被覆盖掉,而是正常显示,只是Activity顶端布局会被覆盖住
可以配合 SYSTEM_UI_FLAG_LAYOUT_STABLE 标志使用,让布局保持稳定
View. SYSTEM_UI_FLAG_HIDE_NAVIGATION
隐藏导航栏
View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION   
window.decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_LAYOUT_STABLE or
View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION or
View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or
View.SYSTEM_UI_FLAG_FULLSCREEN or
View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
↑效果:隐藏状态栏/导航栏
16    视图延伸至导航栏区域导航栏上浮于视图之上
* 按照一个通用的规则,在隐藏导航栏的时候,一般也需要隐藏状态栏
* 通过这种方式隐藏导航栏和状态栏之后, 触摸屏幕的任何区域,导航栏和状态栏都会重新出现且不会再消失,如果想让导航栏和状态栏消失,则需要手动重新设置 UI flag
* 如果想让内容区域出现在导航栏的后面,则需要配合使用 SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION 标志,并且最好配合使用 SYSTEM_UI_FLAG_LAYOUT_STABLE 使布局保持稳定
View.SYSTEM_UI_FLAG_LAYOUT_STABLE  
16   保持整个View稳定, 常和控制System UI悬浮, 隐藏的Flags共用, 使View不会因为System UI的变化而重新layout
保持View Layout不变, 隐藏状态栏或者导航栏后,View不会拉伸
* 使视图稳定,当使用fitSystemWindows()需要视图稳定,一般和View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN联用
View.SYSTEM_UI_FLAG_IMMERSIVE     
(需要联用,已被SYSTEM_UI_FLAG_IMMERSIVE_STIKY取代)
19   只有当设置了SYSTEM_UI_FLAG_HIDE_NAVIGATION才起作用。如果没有设置,任意的View相互动作都退出SYSTEM_UI_FLAG_HIDE_NAVIGATION模式。如果设置就不会退出。
沉浸模式, 隐藏状态栏和导航栏, 并且在第一次会弹泡提醒, 并且在状态栏区域滑动可以呼出状态栏(这样系统会清除之前设置的View.SYSTEM_UI_FLAG_FULLSCREEN或View.SYSTEM_UI_FLAG_HIDE_NAVIGATION标志)。使之生效,需要和View.SYSTEM_UI_FLAG_FULLSCREEN,View.SYSTEM_UI_FLAG_HIDE_NAVIGATION中的一个或两个同时设置。
View. SYSTEM_UI_FLAG_IMMERSIVE_STIKY      
(需要联用)
效果:沉浸式模式
19   粘性沉浸模式,只有当设置了SYSTEM_UI_FLAG_FULLSCREEN或者SYSTEM_UI_FLAG_HIDE_NAVIGATION时起作用,当使用View.setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN|View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY)联用时视图全屏,当用户产生交互时(如下滑状态栏) 不会恢复状态栏,只会以半透明的方式覆盖在视图上面并在一定时间内自动消失
如果没有设置,任意的View相互动作都退出SYSTEM_UI_FLAG_FULLSCREEN | SYSTEM_UI_FLAG_HIDE_NAVIGATION模式。
与上面唯一的区别是, 呼出隐藏的状态栏后不会清除之前设置的View.SYSTEM_UI_FLAG_FULLSCREEN或View.SYSTEM_UI_FLAG_HIDE_NAVIGATION标志,一段时间后将再次隐藏系统栏)
如果设置了 View.OnSystemUiVisibilityChangeListener 监听器,SYSTEM_UI_FLAG_IMMERSIVE 会触发 OnSystemUiVisibilityChangeListener 监听器,但是 SYSTEM_UI_FLAG_IMMERSIVE_STICKY 不会触发 OnSystemUiVisibilityChangeListener 监听器
View.SYSTEM_UI_FLAG_LOW_PROFILE
效果:淡化状态栏/导航栏
14  低调模式, 会隐藏不重要的状态栏图标  状态栏上一些图标显示会被隐藏 , 且有 淡化状态栏和导航栏的效果
一旦用户触摸 StatusBar 和 NavigationBar 相关区域,系统便清除掉了flag
View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR
Android6.0系统以上增加的属性,设置了这个属性,状态栏会以与状态栏 背景颜色兼容的模式绘制(如果当前的状态栏颜色是浅色,那么就有可能造成状态栏上的图标看不清了,但是如果你设置这个属性以后,状态栏的图标就会以深色绘制)
int vis = decorView.getSystemUiVisibility();
if (isLightMode) {
vis |= View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR;
} else {
vis &= ~View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR;
}
注:
  • 一旦这些标志位被清除,则需要重新设置让状态栏隐藏,可以通过监听状态栏和导航栏的可见性,判断状态栏和导航栏是否可见
  • 在不同的位置设置 UI flag 是有区别的。比如,如果在 onCreate() 方法中隐藏状态栏,那当用户按下 Home 键的时候,状态栏重新显示,再打开应用重新回到这个 Activity 的时候,用户可以看到状态栏, 因为这时不会调用 onCreate() 方法, 如果在 onResume() 或者 onWindowFocusChanged() 就可以避免上面这种情况
  • 只有当调用 setSystemUiVisibility() 的 View 是可见的时候,setSystemUiVisibility() 方法才会起作用
  • 界面的切换会导致 setSystemUiVisibility() 的设置失效
  • 可以通过  View.OnSystemUiVisibilityChangeListener  为该  View  设置状态栏和导航栏可见性的监听

Window.addFlags()及其各种Flags ( WindowManager.LayoutParams相关属性)

FLAG_TRANSLUCENT_STATUS   对应↓:
<item name= "android:windowTranslucentStatus" > true </item>
* Android4.4系统增加的属性,它会使状态栏透明透明并且自动执行View.SYSTEM_UI_FLAG_LAYOUT_STABLE和View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
FLAG_FULLSCREEN
<item name=" android:windowFullscreen">true</item>
视图全屏并隐藏状态栏,效果相当于View.SYSTEM_UI_FLAG_FULLSCREEN+View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY,并且视图稳定(不会因为系统控件的变化(如输入法),而重新布局)
FLAG_FORCE_NOT_FULLSCREEN
重写了FLAG_FULLSCREEN并 强制显示状态栏(没什么用)
FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS
Android5.0系统以上支持,如果设置了该属性,系统栏(状态栏和导航栏)将以透明背景绘制,并且该窗口中的相应区域将填充setStatusBar()和setNavigationBarColor()中设置的颜色
FLAG_TRANSLUCENT_NAVIGATION     对应↓:
<item name= "android:windowTranslucentNavigation" > true </item>
隐藏虚拟键(导航栏)
系统在我们添加windowTranslucentStatus和windowTranslucentNavigation属性时候,会自动为我们增加View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION属性。
那要怎么解决我们的布局会被拓展到系统栏后面的效果。在layout.xml增加android:fitsSystemWindows="true"即可。

View#setFitsSystemWindows

此方法只有当设置SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN或者SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION才有有效,当窗口发生变化时,View需要调整自身内容以适应窗口的变化,
你可以理解为当和 SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN一起联用的时候,是给View加了个bottomTop属性,宽度填充视图,高度就是状态栏的高度;
当和 SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION一起联用的时候,是给View加了个bottomBottom属性,宽度填充视图,高度就是导航栏的高度,建议给布局的顶层ViewGroup使用

Window#setStatusBarColor()

android 5.0系统及以上开始支持,设置状态栏的颜色,为了使这个状态有效 必须要设置FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS而且不 能设置FLAG_TRANSLUCENT_STATUS(window. clearFlags )

实现沉浸式状态栏的具体套路

实现沉浸式状态栏分为三个阶段,
  • Android4.4~Android5.0以下;
  • Android5.0~Android6.0以下;
  • Android6.0以上;
背景是一张图片
颜色跟标题栏一致
Android4.4~5.0
window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
FLAG_TRANSLUCENT_STATUS这个属性会让状态栏以白色绘制,同时还会执行SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN和SYSTEM_UI_FLAG_LAYOUT_STABLE这样就会让状态栏浮在图片的上面,这样就形成了沉浸式的效果
颜色跟标题栏一致的情况 ======>
这个阶段实现的套路是,先制造一个假的View背景颜色跟标题栏的颜色一致,高度跟状态栏的高度一致,添加到顶层DecorView上面,然后让Android的最顶层的内容布局调用setFitsSystemWindows空出来状态栏的高度,最后调用FLAG_TRANSLUCENT_STATUS这个属性即可,让状态栏透明并浮在假View上
View statusView = new View(activity);
ViewGroup.LayoutParams statusViewLayoutParams = new ViewGroup.LayoutParams(ViewGroup.LayoutParams. MATCH_PARENT , getStatusBarHeight (activity));
ViewGroup decorView = (ViewGroup) activity.getWindow().getDecorView();
decorView.addView(statusView, statusViewLayoutParams);
ViewGroup rootView = decorView.findViewById(Window. ID_ANDROID_CONTENT );
if (rootView != null ) {
rootView.setFitsSystemWindows( true );
}
activity.getWindow().addFlags(WindowManager.LayoutParams. FLAG_TRANSLUCENT_STATUS )
Android5.0~6.0
activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
activity.getWindow().setStatusBarColor(Color.TRANSPARENT);
activity.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
activity.getWindow()
.getDecorView()
.setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
把状态栏的颜色设置成透明,同时让状态栏浮在视图上面且保持稳定,这样图片就会顶到视图的顶部,因此就实现了沉浸式的效果
方式一:直接给状态栏设置对应的颜色
activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
activity.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
activity.getWindow().setStatusBarColor(color);
方式二:给状态栏设置透明色并让状态栏浮在视图顶层,配合setFitsSystemWindows()
activity.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
activity.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
activity.getWindow().setStatusBarColor(Color.TRANSPARENT);
toolBar.setFitsSystemWindows(true);//这里根据自己的布局情况
Android6.0
在5.0~6.0阶段发现了一个小问题,就是当我们要给状态栏设置的颜色是白色或者浅色的时候,因为默认的状态上图标的颜色是白色就会造成看不清的现象,如下图所示
为了避免这种情况,Android系统在6.0的时候增加了一个属性SYSTEM_UI_FLAG_LIGHT_STATUS_BAR,这里不再赘述,使用了它以后,状态栏上的图标文字就会默认使用黑色绘制。
activity.getWindow().addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
activity.getWindow().clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
activity.getWindow().setStatusBarColor(color);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
activity.getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR);
}

透明状态栏和导航栏示例

// setContentView之前
private fun transparentingNavigationbar() {
        var uiFlag = 0
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
            uiFlag = View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION or
                    View.SYSTEM_UI_FLAG_HIDE_NAVIGATION or
                    View.SYSTEM_UI_FLAG_FULLSCREEN or
                    View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
        }
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
            uiFlag = View.SYSTEM_UI_FLAG_LAYOUT_STABLE or uiFlag
        }
        window.decorView.systemUiVisibility = uiFlag
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            window.statusBarColor = Color.TRANSPARENT
            window.navigationBarColor = Color.TRANSPARENT
        }
    }
  • 除了可以设置状态栏和导航栏为透明,还可以设置为其他颜色
  • 只可以在 Android 5.0(API level 21)及以上的 Android 版本中设置状态栏和导航栏的颜色

版本要求

效果
版本要求
淡化状态栏和导航栏
Version >= 14
隐藏状态栏
全部版本
隐藏导航栏
Version >= 16
沉浸式模式
Version >= 19
透明状态栏
Version >= 21

参考: 
状态栏及导航栏相关知识小结
沉浸式状态栏全面解析
Android关于沉浸式状态栏总结(4.4-6.0以上实现)
全屏、沉浸式、fitSystemWindow使用及原理分析
随手记Android沉浸式状态栏的踩坑之路(2017)
GitHub封装示例1(8.4k)   ;    github util封装示例(0.3k) ;  Android 沉浸式状态栏(utils封装) 
Android windowTranslucentStatus属性源码分析 
Activity 全屏,沉浸式模式分析及SystemBar 监听 (2016)
Android沉浸式状态栏解析 (郭霖2016)
全屏沉浸模式ImmersiveMode ( SYSTEM_UI_FLAG_IMMERSIVE)
Android 自动隐藏虚拟按键和沉浸式状态栏

http://chatgpt.dhexx.cn/article/hDoNUCwx.shtml

相关文章

安卓沉浸式状态栏

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

Android-StatusBarUtil沉浸式状态栏

文章目录 一、前言二、去掉标题栏三、StatusBarUtil属性四、沉浸状态栏颜色五、沉浸状态栏图片 一、前言 大家再开发过程中会遇到上面这种情况&#xff0c;它不影响使用但是在美观上面差点意思&#xff0c;接下来教给大家一种方式来使它美观 二、去掉标题栏 只需要改变NoAction…

沉浸式状态栏(一)

我们知道IOS上的应用&#xff0c;状态栏的颜色总能与应用标题栏颜色保持一致&#xff0c;用户体验很不错&#xff0c;那安卓是否可以呢&#xff1f;若是在安卓4.4之前&#xff0c;答案是否定的&#xff0c;但在4.4之后&#xff0c;谷歌允许开发者自定义状态栏背景颜色啦&#x…

安卓沉浸式状态栏,android沉浸式状态栏工具类封装

文章目录 前言二、使用步骤1.定义2.使用3.效果 前言 沉浸式状态栏对安卓6.0以上版本很简单&#xff0c;今天分享一个封装好的工具&#xff0c;供大家参考 二、使用步骤 1.定义 代码如下&#xff1a; package com.example.mystudy_kotlin.utilsimport android.app.Activity …

沉浸式状态栏实现

文章目录 郭霖的博客这样实现透明状态栏隐藏导航栏真正的沉浸式模式 轮子 郭霖的博客这样实现 Android状态栏微技巧&#xff0c;带你真正理解沉浸式模式 透明状态栏 新建一个项目&#xff0c;只放一张图片 可以看到 状态栏、ActionBar、底部导航栏都显示&#xff0c;现在修…

flutter沉浸式状态栏

方法1&#xff1a;修改MainActivity 在MainActivity.kt或MainActivity.java&#xff0c;判断一下版本号然后将状态栏颜色修改设置成透明&#xff0c;因为他本身是黑色半透明&#xff1a; Kotlin&#xff1a; class MainActivity: FlutterActivity() {override fun configure…

uniapp 沉浸式状态栏

uniapp 沉浸式状态栏 1.page.json 中设置 &#xff1a;“navigationStyle”:"custom" "globalStyle": {"navigationBarTextStyle": "black","navigationBarTitleText": "uni-app","navigationStyle":…

Android使用沉浸式状态栏

Android使用沉浸式状态栏 为什么使用? 我们App里面目前都没有做沉浸式状态栏&#xff0c;会导致状态栏呈黑色条状&#xff0c;而且下面这个的黑色条状与App红色主界面有很明显的区别。这样在一定程度上牺牲了视觉高度&#xff0c;界面面积变小。 可以对照比较这三张图 代码…

【Android实战】沉浸式状态栏实现(上)

传统的手机状态栏是呈现出黑色条状的&#xff0c;有的和手机主界面有很明显的区别。这样就在一定程度上牺牲了视觉宽度&#xff0c;界面面积变小。 沉浸模式的状态栏和主界面完全融为了一体&#xff0c;在设计上有不同的视觉感受。 我们先上两张图&#xff0c;很容易看出区别&a…

Android 沉浸式状态栏

文章目录 Android 沉浸式状态栏前提情况一&#xff1a;使用FrameLayout情况二&#xff1a;使用CoordinatorLayoutfitsSystemWindows属性原理情况三&#xff1a;在CoordinatorLayout中添加子控件问题&#xff1a;解决&#xff1a; 情况四&#xff1a;使用FrameLayout实现沉浸式效…

Android实现沉浸式状态栏效果

关于沉浸式状态栏&#xff0c;给大家推荐一个非常好的博文android标题栏、状态栏图标文字颜色及背景动态变化 另外说明下&#xff0c;沉浸式状态栏的实现仅适用于 android 4.4及以上版本&#xff0c;4.4以下的就不要想了。 1. 实现秀明状态栏常规方法 //是否使用特殊的标题栏背…

适配“沉浸式”状态栏

传送门&#xff1a; fitSystemWindow属性的作用 http://blog.csdn.net/wangxp423/article/details/79564244 fitSystemWindow属性实战 http://blog.csdn.net/wangxp423/article/details/79566465 上两篇我们讲了fitSystemWindows实现沉浸式状态栏&#xff0c;本篇主要讲解适…

Android 实现沉浸式状态栏(包含顶部栏吸顶Layout CoordinatorLayout实现沉浸式状态栏)

前言 Android状态栏默认是固定的黑底白字&#xff0c;这肯定是不被伟大的设计师所喜爱的&#xff0c;更有甚者&#xff0c;某些时候设计希望内容能够延伸到状态栏上部&#xff08;例如顶部是大图的情况&#xff09;。所幸的是随着Android版本的迭代&#xff0c;开发者对状态栏…

Android实现ImmersionBar沉浸式状态栏

&#xff08;一&#xff09;效果图 &#xff08;二&#xff09;实现步骤&#xff1a; 1、在build.gradle中加上 implementation com.gyf.barlibrary:barlibrary:2.3.0 2、设置页面为全屏 将上图中的 <style name"AppTheme" parent"Theme.AppCompat.Light.…

Android沉浸式状态栏实现

首先创建一个BaseActivity或者BaseFragment&#xff0c; 后面需要沉浸式状态的继承BaseActivity或BaseFragment, 然后在XML文件中添加想设置的状态栏背景颜色&#xff0c;以下两句代码 android:background"#1677FE" android:fitsSystemWindows“true” BaseActivity代…

一个Android沉浸式状态栏上的黑科技

本文同步发表于我的微信公众号&#xff0c;扫一扫文章底部的二维码或在微信搜索 郭霖 即可关注&#xff0c;每个工作日都有文章更新。 说起来&#xff0c;在不知不觉中&#xff0c;我竟然凑成了这沉浸式状态栏三部曲。 其实最开始的时候&#xff0c;我主要是因为工作上的原因想…

Android 实现沉浸式状态栏

上一篇文章将Android 实现变色状态栏我们实现了变色的状态栏&#xff0c;也介绍了沉浸式状态栏和透明状态栏的区别&#xff0c;这篇文章我们实现沉浸式状态栏。 沉浸式状态栏的来源就是很多手机用的是实体按键&#xff0c;没有虚拟键&#xff0c;于是开了沉浸模式就只有状态栏消…

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

转载请标明出处&#xff1a; http://blog.csdn.net/lmj623565791/article/details/48649563&#xff1b; 本文出自:【张鸿洋的博客】 一、概述 近期注意到QQ新版使用了沉浸式状态栏&#xff0c;ok&#xff0c;先声明一下&#xff1a;本篇博客效果下图&#xff1a; 关于这个状…

Android 最新实现沉浸式状态栏的效果

博主前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住也分享一下给大家&#xff0c; &#x1f449;点击跳转到网站 什么是状态栏: 是指手机屏幕最顶上&#xff0c;显示中国移动、安全卫士、电量、网速等等&#xff0c;在手…

Android 沉浸式状态栏完美解决方案

国内很多类似的文章, 我只想说一个字, 真tm乱! 我看不懂… 评论里面 全在说无效什么的 (我试了也无效, 好厉害的样子) 不废话,回到正题, 首先贴上一个众所周知的库 SystemBarTint 我只要这个类 https://github.com/jgilfelt/SystemBarTint/blob/master/library/src/com/readys…