记得之前有朋友在留言里让我写一篇关于沉浸式状态栏的文章,正巧我确实有这个打算,那么本篇就给大家带来一次沉浸式状态栏的微技巧讲解。...而有些人在没有完全了解清楚沉浸模式到底是什么东西的情况下,就张冠李戴地认为一些系统提供的状态栏操作就是沉浸式的,并且还起了一个沉浸式状态栏的名字。...这才是沉浸式模式的真正含义,而所谓的什么沉浸式状态栏纯粹就是在瞎叫,完全都没搞懂“沉浸式” 这三个字是什么意思。 不过虽然听上去好像是很高大上的沉浸式效果,实际看上去貌似就是将内容全屏化了而已嘛。...现在重新运行一下程序,效果如下图所示。 ? 真正的沉浸式模式 虽说沉浸式导航栏这个东西是被很多人误叫的一种称呼,但沉浸式模式的确是存在的。那么我们如何才能实现像海岛奇兵以及爱奇艺那样的沉浸式模式呢?...需要注意的是,只有在Android 4.4及以上系统才支持沉浸式模式,因此这里也是加入了if判断。
前言 我们先一起来回顾一下实现沉浸式状态栏的一般套路。...用户滑动后, SYSTEMUIFLAGHIDENAVIGATION 和 SYSTEMUIFLAG_FULLSCREEN 就会被清除,系统栏就会重新显示并保持可见。...为了确保 UI 的可见性与系统栏保持一致,我们需要一个监听器 View.OnSystemUiVisibilityChangeListener 来监听系统栏的变化。这在下一节中将详细讲解。...请注意,如果为了测试你想强制显示提示气泡,你可以先将应用设为沉浸模式,然后按下电源键进入锁屏模式,并在 5 秒中之后打开屏幕。 沉浸模式—— 这张图展示了隐藏了系统栏和其他UI控件的状态。...你可以只使用其中的一个,但是一般情况下你需要同时隐藏状态栏和导航栏以达到沉浸的效果。
全屏沉浸式应用 这节课将教您 选择一种沉浸方式 使用非粘性沉浸模式 使用粘性沉浸模式 Adnroid 4.4(API level 19)中引入为 setSystemUiVisibility()引入了一个新标签...当沉浸式全屏模式启用的时候,你的Activity会继续接受各类的触摸事件。用户可以通过在边缘区域向内滑动来让系统栏重新显示。...请注意,带有'sticky'的标签不会触发任何的监听器,因为在这个模式下展示的系统栏是处于暂时(transient)的状态。 图1展示了各种不同的“沉浸式”状态 ? 图1. 沉浸模式状态....Note:如果为了测试你想强制显示提示气泡,你可以先将应用设为沉浸模式,然后按下电源键进入锁屏模式,并在5秒中之后打开屏幕。 沉浸模式—— 这张图展示了隐藏了系统栏和其他UI控件的状态。...你可以只使用其中的一个,但是一般情况下你需要同时隐藏状态栏和导航栏以达到沉浸的效果。
全屏指的是播放画面view最大化,通过把状态栏隐藏或透明; 所以超级播放器在实现全屏的时候也是有对状态栏做处理; 当自己的项目也是有做沉浸式开发状态栏时看能会跟超级播放器的逻辑有冲突; image.png...会一直保持全屏模式。显示切换时也会触发View.OnSystemUiVisibilityChangeListener。...还有一个区别就是 ,全屏模式时, 从原本状态栏或者虚拟按键的位置 响屏幕内部滑动, 会清除SYSTEM_UI_FLAG_HIDE_NAVIGATION和SYSTEM_UI_FLAG_FULLSCREEN..., 保持可见状态,并且也会触发View.OnSystemUiVisibilityChangeListener监听。...2.检查一下自己项目的沉浸式状态栏逻辑,注释掉试一下,或者把我们的代码逻辑注释掉调试一下
隐藏状态栏(或者是导航栏)可以让内容得到更多的展示空间,从而提供一个更加沉浸式的用户体验。 图1展示了显示状态栏的界面 ? 图1. 显示状态栏. 图2展示了隐藏状态栏的界面。...详细可以看第五节如何监听并响应UI可见性的变化。 在不同的地方设置UI标签是有所区别的。如果你在Activity的onCreate()方法中隐藏系统栏,当用户按下home键系统栏就会重新显示。...当用户再重新打开Activity的时候,onCreate()不会被调用,所以系统栏还会保持可见。...在保证导航栏易于再次访问的情况下,隐藏导航栏与状态栏使内容区域占据了整个显示空间,因此可以提供一个更加沉浸式的用户体验。 ? 图1. 导航栏....如果你在Activity的onCreate()方法中隐藏系统栏,当用户按下home键系统栏就会重新显示。当用户再重新打开activity的时候,onCreate()不会被调用,所以系统栏还会保持可见。
说起来,在不知不觉中,我竟然凑成了这沉浸式状态栏三部曲。 其实最开始的时候,我主要是因为工作上的原因想要在Android版的Edge浏览器上实现首页图片沉浸式的功能。...实现沉浸式之后的效果如下图所示: 不过,有朋友在评论区提出了这样一个疑问: 确实,这是一个做沉浸式功能时比较容易被忽略的问题。...这就是我在上篇文章中说的,在实现沉浸式状态栏时运用了一些小黑科技。那么借助这些小黑科技,我终于可以凑成这沉浸式状态栏三部曲了。 话不多说,下面技术开讲。...可以看到,不管在什么背景图下,状态栏图标的颜色都可以做到自动适配,保证图标始终是清晰可见的。...比如说背景图就是一张黑白左右分割的图片,这种情况下Palette会选取哪种颜色来作为代表色其实是不确定的。但不管是选中了黑还是白,都一定会导致状态栏上有一半区域的图标是不可见的。
,miui6发布会把他叫做沉浸式,之后大家就自然而然的接受了沉浸式这个名称,其实实际应该叫做Translucent Bar,即为透明状态栏。...详细介绍 解决状态栏和布局顶部重合 上面已经说了,沉浸式原理就是使整个布局延伸到状态栏和导航栏,既然这样必然导致一个问题,就是状态栏和布局顶部重叠,直接看图 ?...实现沉浸式是分为两块,一块是android5.0以上,一块是android4.4,这两块实现原理完全不一样,在讲解原理之前先看几个概念,下面需要用到 View.SYSTEM_UI_FLAG_VISIBLE...状态栏字体颜色 沉浸式原理说完了,在看看状态栏字体颜色怎么去修改吧,在android 6.0以上系统为我们提供了相关的api来设置状态栏字体颜色,如下 if (Build.VERSION.SDK_INT...网上关于沉浸式的介绍铺天盖地,但是很少有人把它们封装起来,当开发者调用的时候还得自己去写大量代码,消耗大家时间。写这个库的目的就是方便大家的开发,解决大家在沉浸式方面出现的问题。
调用窗口对象的setWindowLayoutFullScreen方法实现沉浸式布局。...// 设置窗口的布局是否为沉浸式布局 lastWindow.setWindowLayoutFullScreen(true, () => { // 设置窗口全屏模式时导航栏...、状态栏的可见模式 lastWindow.setWindowSystemBarEnable([]); // 设置窗口的显示方向属性,AUTO_ROTATION_LANDSCAPE...(window.Orientation.UNSPECIFIED, () => { // 设置窗口全屏模式时导航栏、状态栏的可见模式 lastWindow.setWindowSystemBarEnable...(WINDOW_SYSTEM_BAR, () => { // 设置窗口的布局是否为沉浸式布局 lastWindow.setWindowLayoutFullScreen
简单回顾一下,实现 "边到边" 会让您的应用渲染在系统状态栏的后面,如上图所示。 引用去年我自己的话: 实现从边到边的全面屏体验后,系统栏会覆盖在应用内容前方。...,视窗希望在极端的情况下该如何布局内容。...在姗姗来迟了十年后,我们终于可以回答这个关于如何查看软键盘可见性的 StackOverflow 问题。 在 Android 中如何查看软键盘的可见性?...// 现在开始吸附式沉浸式体验 ... controller.setSystemBarsBehavior( BEHAVIOR_SHOW_TRANSIENT_BARS_BY_SWIPE )...在本系列下一篇文章中,我们会研究第二步: 应用对于边衬区的响应式动画。敬请关注。
此篇文章主要讲解关于沉浸式状态栏,程序全屏和分清状态栏、ActionBar、ToolBar 的一些知识内容。主要是讲解如何适配状态栏。...在国内将这种状态栏变色叫做沉浸式状态栏,其实这种叫法是错误的,但是时间久了,大家都这么叫了,就不追究了,就把这种状态栏变色叫做沉浸式状态栏了(这也是由国内互联网发展太过迅速,忽略了很多细节点,相关方面的人才缺乏...关于沉浸式和透明式概念说明 在谷歌官方中: 在 Android 4.4 Google 引入了可以在阅读电子书、玩游戏、看电影时支持全屏模式(Immersive Mode 沉浸模式),同时也支持更改修改状态栏的颜色...可以知道在官方是根本没有 沉浸式状态栏 这种说法的。只有 沉浸模式 就是其实就是出于全屏状态。所谓的 ”沉浸式状态栏“,类似于下面图的样子: ?...screnn_stable.png 5.沉浸模式 // 所谓沉浸模式就是一开始我们的 UI 布局是全屏的,状态栏和虚拟导航键也是隐藏的,当我们需要的系统 UI 的时候,从状态栏的位置下拉就可以出现系统
“沉浸播放式”这个概念是我从Android开发里面的沉浸式引申过来的一个概念,沉浸式其实就是隐藏页面顶部的status bar和底部的navigation bar之后呈现出来的页面,一般用户很容易把沉浸式状态栏和透明化状态栏混为一谈...,他们的区别如下: 沉浸式状态栏 ?...,视频的比例都是16:9,也就是高/宽约等于1.78,这里用到的测试视频也是16:9的,而且默认情况下video的object-fit属性的值是contain,也就是保持长宽比,我们先看下不做处理在iphone6...同层播放模式下的效果 确实是真正意义上的沉浸式播放,如果你的app里面webview用的也是x5内核那么这个页面也能在app上达到同样的效果,但是这种同层播放依然有无法解决的问题,首先这个全屏模式会重新计算宽高...+url的组合,如果你对页面的定制化要求比较高的话,我这里有一个备选的方案,那就是放弃同层播放模式,当然这个前提是你不需要在video页面上做一些交互操作,或者说你的域名处于微信白名单下,当我们在非沉浸式下又想要打到等比例缩放视频的效果
各位如果有什么意见可以在Issues上提,或者联系我。...具体可见http包 缓存 使用GreenDao数据库缓存本地数据,并提供数据备份、还原功能。...支持下拉刷新、上拉加载功能,不满足一屏数据 RxBusTools 封装RxBusTools事件分发 封装BaseActivity、BaseFragment统一处理注册监听事件 StatuBarUtils沉浸式...使用写代码的猴子的StatusBarUtil 状态栏工具类(实现沉浸式状态栏/变色状态栏)适配沉浸式通知栏 主题切换 B站开源框架MagicaSakura 百变Logo Android群英传中利用根据主题颜色动态切换...如果有大神可以在Issues提供。
Android 沉浸式全屏 Android 4.4 带来了沉浸式全屏体验, 在沉浸式全屏模式下, 状态栏、 虚拟按键动态隐藏, 应用可 以使用完整的屏幕空间, 按照 Google 的说法, 给用户一种...SystemUiFlags.Fullscreen | SystemUiFlags.HideNavigation; Window.DecorView.SystemUiVisibility = uiOpts; 在普通全屏模式下..., 应用可以占据屏幕的全部空间, 当用户触摸屏幕的任何部分时, 会自动退出全屏模 式, 这种模式比较适用于视频播放器类应用。...SystemUiFlags.HideNavigation | SystemUiFlags.Immersive; Window.DecorView.SystemUiVisibility = uiOpts; 在沉浸模式下...SystemUiFlags.HideNavigation | SystemUiFlags.ImmersiveSticky; Window.DecorView.SystemUiVisibility = uiOpts; 在黏性沉浸模式下
导语:沉浸式状态栏,改变状态栏的颜色使之与APP风格一体化是不是感觉很漂亮,很美?其实实现这种效果并不难,google在4.4及以下提供了相关的方法。...我相信大家肯定看到过很多软件有沉浸式状态栏,在运行该App时改变了手机屏幕顶部状态栏的颜色,使他们的风格非常的统一,看起来异常的漂亮和清爽。...想不想实现这种效果呢,其实在Android KITKAT上有一个新的特性可以设置手机状态栏的背景,让手机整个界面的风格保持一致,看起来非常清爽统一。...当然这种效果只支持在API 19及以上使用沉浸式状态。4.4系统以上的是看不到这种效果的。 效果图 ?...比如系统有状态栏,应用也有状态栏时。看你这个布局代码,恰恰是在定义标题栏样式,所以用到这行代码了。
如下图白边原因其实上面的白边,称之为状态栏。上面会放手机wifi信号、电池电量等信息。一般情况下我们不需要把应用中具有交互效果的界面延伸到上面去,免得影响操作。...,状态栏上可以不放任何界面元素,但是需要将状态栏的颜色定义的与app背景色保持一致,才会视觉上显得更好看,更融为一体。...通过设置Window背景色来实现通过调用窗口强制全屏布局接口setWindowLayoutFullScreen() + padding避让实现 (麻烦)直接使用扩展到避让区功能通过设置Window背景色实现沉浸式设置窗体背景色实现先看不设置的情况下...因此,我们使用这个方法实现沉浸式时,一般还要做让页面根容器padding避让。也即让我们布局的组件,通过padding的方式挪动他们位置,避让原本的状态栏和导航栏。...,SafeAreaEdge.TOP代表上面状态栏沉浸式,SafeAreaEdge.BOTTOM代表下面导航栏沉浸式,此时效果如下没错,此时不需要启动模拟器,预览器也可以直接看到效果!
背景在实际项目中,为了软件使用整体色调看起来统一,一般顶部和底部的颜色需要铺满整个手机屏幕。因此,这篇帖子是介绍设置的方法,也是应用沉浸式效果。...如下图:底部的绿色延伸到上面的状态栏和下面的导航栏UI在鸿蒙应用中,全屏UI元素分为状态栏、应用界面和导航栏。...一般实现应用沉浸式效果由两种方式:窗口全屏布局方案:调整布局系统为全屏布局,界面元素延伸到状态栏和导航条区域实现沉浸式效果。组件延伸方案:组件布局在应用界面区域,通过接口方法延伸到状态栏和导航栏。...HorizontalAlign.Center) .justifyContent(FlexAlign.SpaceBetween) .backgroundColor('#008000') // top数值与状态栏区域高度保持一致...,可以通过组件延伸方案去实现部分组件的沉浸式布局。
这有助于您为用户打造更加沉浸的体验。 在大多数设备上,用户都能选择他们喜欢的导航模式。现有的三键导航模式 (包含后退、返回首页以及切换最近使用的应用) 会被保留。...全面屏幕体验 我使用 "边到边" (edge-to-edge) 一词来描述那种将内容铺满整个屏幕,以实现更沉浸视觉体验的应用。默认情况下,应用内容的绘制范围从顶部状态栏下方开始,延伸至底部导航栏上方。...使用 Android 10 以下设备的用户同样能获得更加沉浸的体验。我们将它设置为可选,仅仅是为了最大程度地减少开发者的工作量和测试量。 在状态栏后面绘制内容 接下来,我们来看看屏幕顶部的状态栏。...Android 10 上,系统会负责在所有导航模式下确保系统栏的内容可见 (包括时间、图标、拖拽条等)。...如果满足以下条件,系统将使用遮盖: 启用了两键或三键导航模式。 设备制造商在手势导航模式下禁用了动态颜色适配。制造商这么做的原因可能是设备的性能不足以支持动态色彩适配。 ?
---- 沉浸式状态栏 ---- 改变状态栏的颜色使之与APP风格一体化!...我相信大家肯定看到过很多软件有沉浸式状态栏,在运行该App时改变了手机屏幕顶部状态栏的颜色,使他们的风格非常的统一,看起来异常的漂亮和清爽。...其实在Android KITKAT上有一个新的特性可以设置手机状态栏的背景,让手机整个界面的风格保持一致,看起来非常清爽统一。...当然这种效果只支持在API 19(Android4.4)及以上使用沉浸式状态。参考了GitHub/niorgai。...中文api说明在百度云【百度云盘】 ? ---- 每天一更~~
我相信用到android:fitsSystemWindows的朋友基本都是为了去实现沉浸式状态栏效果的。 这里我先解释一下什么是沉浸式状态栏效果。...Android手机顶部用于显示各种通知和状态信息的这个栏叫做状态栏。 通常情况下,我们应用程序的内容都是显示在状态栏下方的。...我相信按照绝大多数人的美好设想,android:fitsSystemWindows属性就应该像是一个开关一样,设置成true就可以打开沉浸式状态栏效果,设置成false就可以关闭沉浸式状态栏效果。...效果如下图所示: 这样就可以成功实现沉浸式状态栏效果了。...现在重新运行一下程序,效果如下图所示: 可以看到,现在我们仍然实现了沉浸式状态栏的效果,但问题是FrameLayout中的按钮也延伸到状态栏区域了,这就是前面所说的可交互控件被状态栏遮挡的问题。
领取专属 10元无门槛券
手把手带您无忧上云