Status Bar出现在屏幕的上边缘,并显示有关设备当前状态的有用信息,如时间,手机运营商,网络状态和电池电量。 Status Bar中显示的实际信息取决于设备和系统配置。 使用系统提供的状态栏。...对状态栏下的内容进行遮挡。默认情况下,状态栏的背景是透明的,允许下面的内容显示。保持status bar可读,并不意味着它背后的内容是交互式的。...·在status bar后面显示自定义图像,如渐变色或纯色。 ·在status bar后面放置一个模糊的视图。 考虑在显示全屏媒体时暂时隐藏status bar。...例如,“照片”app会在用户浏览全屏照片时隐藏status bar和其他界面元素。 ? 全屏看图片 避免永久隐藏status bar。...在照片app中浏览全屏照片时,一次点击就会再次显示status bar。 使用status bar来表示网络活动。
可以这么理解:状态栏与导航栏拥有自己独立的窗口,而且这两个窗口的优先级较高,会悬浮在所有窗口之上,可以把系统自身的状态栏与导航栏看做全透明的,之所有会有背景颜色,是因为下层显示界面在被覆盖的区域添加了颜色...先看下关键点1跟2 ,这里是根据SystemUI的配置决定是否显示状态栏背景颜色,如果状态栏都不显示,那就没必要显示背景色了,其次,如果状态栏显示,但背景是透明色,也没必要添加背景颜色,即不满足(color...最后看一下translucentFlag,默认情况下,状态栏背景色与translucent半透明效果互斥,半透明就统一用半透明颜色,不会再添加额外颜色。...用户布局级别的fitSystemWindow消费 假设图片浏览的场景:全屏,导航栏与状态栏透明,图片浏览区伸展到整个屏幕,通过设置下面的配置就能达到效果:全屏,并且用户布局与系统布局都不消费WindowInsets...沉浸式全屏 如上图:由于背景透明,所以状态栏与导航栏背景色View都没有被添加,其次,由于设置了View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
导航栏是半透明的,也可以添加背景色,并且必要时可以设置为隐藏。 ? 某些情况下可暂时隐藏导航栏,以提供更沉浸的体验。例如,当人们查看全屏照片时,“照片”会隐藏导航栏和其他界面元素。...隐藏状态栏下的内容。默认情况下,状态栏的背景是透明的,是可以看到背后的内容的。保持状态栏可读,并不意味着其背后的内容是可交互的。...有几种常见的技术可以做到这一点: · 在APP中使用导航栏,该导航栏会自动显示状态栏背景,并确保内容不会显示在状态栏背后 · 在状态栏背后显示自定义图像,如渐变色或纯色 · 在状态栏背后放置模糊的视图...在“照片”应用中浏览全屏照片时,只需轻按一次即可再次显示状态栏。 五、标签栏(Tab Bars) 标签栏出现在页面底部,可以在APP的不同模块之间快速切换。标签栏是半透明的,也可添加背景颜色。...工具栏是半透明的,也可以添加背景颜色,并在用户不需要它们时应该隐藏起来。 例如:在Safari中,当你开始滚动页面时,工具栏会自动隐藏,因为你可能正在阅读。你还可以点击屏幕底部让它再次出现。
在Activity中隐藏状态栏,要在setContentView(R.layout.activity_main)之前调用。 而Dialog中,需要在dialog.show()方法之后去调用。...在Activity中,虽然在setContentView(R.layout.activity_main)之前调用隐藏状态栏的代码,但是一旦Activity跳转,就又出来了, 解决办法是在隐藏状态栏逻辑代码的下面...);//一定要用mProgressDialog得到当前界面的参数对象,否则就不是设置ProgressDialog的界面了 params.alpha = 0.8f;//设置进度条背景透明度...params.x = 90; params.width = 3 * width / 5;//设置进度条的宽度 params.dimAmount = 0f;//设置半透明背景的灰度...,范围0~1,系统默认值是0.5,1表示背景完全是黑色的,0表示背景不变暗,和原来的灰度一样 mProgressDialog.getWindow().setAttributes(
Activity负责定义和管理用户界面的内容,通过方法如setContentView来指定要在Window中显示的内容。...使用DecorView示例 以下是一个示例代码,演示如何在Activity中获取DecorView并更改其背景颜色: // 获取当前Activity的DecorView View decorView =...这使得整个Activity的背景都变成了蓝色。 Window的类型 Android中存在不同类型的窗口,每种类型的窗口都有其特定的用途和属性。...属性:应用程序窗口可以包括标题栏、内容视图和系统状态栏。它们通常可以获得焦点,并且可以与用户交互。...例如,我们可以设置Window为全屏模式,设置窗口透明度等。
关于沉浸式大概可以分成三个阶段: Android4.4(API 19)- Android 5.0(API 21):这个阶段可以实现沉浸式,但是表现得还不是很好,实现方式为: 通过 FLAGTRANSLUCENTSTATUS 设置状态栏为透明并且为全屏模式...1.1.2 两种使用这个属性的方式: 在使用时候,我们通常需要考虑的是状态栏一值显示在顶部而不会隐藏或者被遮挡(其他 app 情况如:读书 app 或者是游戏 app 则需要隐藏顶部状态栏),所以只需要通过代码设置...所以Android5.0以上可以设置状态栏和导航栏背景颜色,但还不能改变状态栏和导航栏图标和字色。...style> 二、ZanImmersionBar 轮子的原理和使用 在实际开发过程中,我们不仅仅只会遇到以上三种版本兼容问题,还需要考虑如:不同手机品牌,动态该状态栏背景,以及 Fragment 中需要有自己的状态栏颜色场景...2.1.1 收集 bar 参数 我们使用一个对象用于存储用户设置的 bar 参数,这些参数有状态栏和导航栏颜色、透明度、显示隐藏等等,通过该对象中的参数来分别设置 public class BarParams
使用 Android 10 以下设备的用户同样能获得更加沉浸的体验。我们将它设置为可选,仅仅是为了最大程度地减少开发者的工作量和测试量。 在状态栏后面绘制内容 接下来,我们来看看屏幕顶部的状态栏。...举个具体的例子,比如像下图那样把一张背景图铺在状态栏后面,具体的技术实现可以参考类似 AppBarLayout 等布局,并将其放在屏幕顶部。 ?...请求进行全屏布局 第一步是让系统将我们应用布局扩展至系统栏后方。...△ 应用内容在全屏范围内渲染,而且在导航栏后面2. 更改系统栏颜色 我们的应用布局现在已经拓展至全屏范围,因此需要同步更改一下系统栏的颜色,以便看清其后面的应用内容。...对于浅色主题,可以试试使用半透明浅色遮盖 (如 #B3FFFFFF)。 ? △ 深浅两种主题的遮盖示例3. 处理视觉冲突
我们在 Android 10 中添加了新的系统导航模式,用户可以通过手势交互执行后退、返回至主屏以及打开设备助手等操作。...使用 Android 10 以下设备的用户同样能获得更加沉浸的体验。我们将它设置为可选,仅仅是为了最大程度地减少开发者的工作量和测试量。 在状态栏后面绘制内容 接下来,我们来看看屏幕顶部的状态栏。...举个具体的例子,比如像下图那样把一张背景图铺在状态栏后面,具体的技术实现可以参考类似 AppBarLayout 等布局,并将其放在屏幕顶部。...请求进行全屏布局 第一步是让系统将我们应用布局扩展至系统栏后方。...对于浅色主题,可以试试使用半透明浅色遮盖 (如 #B3FFFFFF)。 △ 深浅两种主题的遮盖示例3.
关于沉浸式和透明式概念说明 在谷歌官方中: 在 Android 4.4 Google 引入了可以在阅读电子书、玩游戏、看电影时支持全屏模式(Immersive Mode 沉浸模式),同时也支持更改修改状态栏的颜色...上面也说了这种错误的叫法是不对的,没有沉浸式状态栏 ,这种样式只是将内容 UI 设置成了全屏,把状态栏设置成了透明。...所以这种是叫做 状态栏透明模式 设置透明状态栏 先来几组效果图,从效果 1 开始逐渐递进演示,这里面的几个重要参数会在后面具体说明,这里先说明现象 1.内容布局全屏 在 Android 4.1 以上设置去除状态栏或者认为是状态栏被内容布局遮挡了...这个时候我们只要设置状态栏为透明。就是我们想要的透明状态栏的那种效果了。 效果图: ?...,我们只需要自己来创建一个系统栏背景就可以了。
此外,我们可以通过getBackground()获取UnderView的背景,并根据已划开屏幕占整个屏幕的百分比调用setAlpha方法改变背景的透明度,做出抽屉拉开时的光影变化效果。 ? ...则通过ObjectAnimator在0.25s将mMoveView移动到初始位置,同时在ObjectAnimator的AnimatorUpdateListener的onAnimationUpdate方法中更新背景透明度...Android 4.4 之后加入的Immersive Full-Screen Mode 允许用户在应用全屏的情况下,通过在原有的状态栏/导航栏区域内做向内滑动的手势来实现短暂调出状态栏和导航栏的操作,且不会影响应用的正常全屏...这个“半透明化”包括了状态栏和通知栏,当开发者让应用支持这个新特性的时候,状态栏和导航栏可以单独/同时变为渐变的半透明样式,如下图: ? ...现在除了原有的“半透明”模式以外,还有“全透明”以及“变色”模式,一种会完全隐藏背景,另一种可以取色作为背景颜色,多种样式的透明栏如下图(上图为透明状态栏,下图为透明导航栏): ? ?
沉浸式实现原理其实是使整个activity布局延伸到整个屏幕,然后使状态栏变成透明色,有些手机会有导航栏,同样也可以把导航栏变成透明色,这样会使一些app更加美观。 先看两个概念 状态栏 ?...图片状态栏+彩色导航栏 ? ? 全屏图片 ? ? 彩色状态栏+彩色导航栏 ? ? 结合DrawerLayout使用 ?...修改状态栏字体颜色为深色 ? ? 设置状态栏和导航栏透明度 ? ? ? 解决EditText和软键盘的问题 ? ?...View.INVISIBLE:隐藏状态栏,同时Activity会伸展全屏显示。 View.SYSTEM_UI_FLAG_FULLSCREEN:Activity全屏显示,且状态栏被隐藏覆盖掉。...原理如此,发现SystemBarTint库的实现就是在状态栏和导航栏的位置自定义了可以改变背景颜色的view,然后通过window.getDecorView()得到根布局,把刚才创建的view添加进去,
此外,我们可以通过getBackground()获取UnderView的背景,并根据已划开屏幕占整个屏幕的百分比调用setAlpha方法改变背景的透明度,做出抽屉拉开时的光影变化效果。...则通过ObjectAnimator在0.25s将mMoveView移动到初始位置,同时在ObjectAnimator的AnimatorUpdateListener的onAnimationUpdate方法中更新背景透明度...Android 4.4 之后加入的Immersive Full-Screen Mode 允许用户在应用全屏的情况下,通过在原有的状态栏/导航栏区域内做向内滑动的手势来实现短暂调出状态栏和导航栏的操作,且不会影响应用的正常全屏...这个“半透明化”包括了状态栏和通知栏,当开发者让应用支持这个新特性的时候,状态栏和导航栏可以单独/同时变为渐变的半透明样式,如下图: ?...现在除了原有的“半透明”模式以外,还有“全透明”以及“变色”模式,一种会完全隐藏背景,另一种可以取色作为背景颜色,多种样式的透明栏如下图(上图为透明状态栏,下图为透明导航栏): ? ?
比如之前就有一个QQ群友问过我,像饿了么这样的沉浸式状态栏效果该如何实现? ? 这个效果其实就是让背景图片可以利用系统状态栏的空间,从而能够让背景图和状态栏融为一体。...其中,SYSTEM_UI_FLAG_FULLSCREEN表示全屏的意思,也就是会将状态栏隐藏。...,最后再调用Window的setStatusBarColor()方法将状态栏设置成透明色就可以了。...可以看到,类似于饿了么的状态栏效果就成功实现了。 再声明一次,这种效果不叫沉浸式状态栏,也完全没有沉浸式状态栏这种说法,我们估且可以把它叫做透明状态栏效果吧。...可以看到,界面默认情况下是全屏的,状态栏和导航栏都不会显示。
注意状态栏的高度。全屏iPhone型号的状态栏比其他型号高。如果你的APP采用固定的状态栏高度将内容定位在状态栏下方,则必须更新APP以便于根据用户的设备来动态的定位内容。...请注意,当诸如录音和位置跟踪之类的后台任务处于活动状态时,全屏iPhone上的状态栏不会更改高度。 如果你的APP当前隐藏状态栏,请重新考虑全屏iPhone的隐藏与否。...放置在半透明元素后面或应用于半透明元素(如工具栏)上时,颜色也会显得不同。 在各种照明条件下测试APP的配色方案。根据房间的氛围、一天的时间、天气等,室内和室外的照明差异很大。...色盲人可能无法区分某些颜色组合;而对比度不足会导致图标和文本与背景混合,使内容难以阅读。 系统颜色 iOS提供了一系列的系统颜色,可自动适应活动和可访问性设置的变化,如增加对比度和降低透明度。...尽可能将自定义视图与系统提供的视图进行比较,以获得类似功能并使用相同的材质。 利用系统提供的文本、填充、字形和分隔符的颜色。系统提供的颜色会自动使这些项目在半透明背景上看起来很棒。
本文假设读者已经了解着色模式和全屏模式(沉浸模式)。...背景 公司的 APP 设计图仅有 iOS 版的,对于 Android 平台,它整体算是着色模式,但是在个人页面是全屏模式(沉浸模式),实现设计图时,我使用的是一个 Activity + 四个 Fragment...对于 Android 4.4 + ( >= 4.4 且 < 5.0 ) 这种情况下,我们启用 4.4 新增的半透明状态栏,通过修改当前 Activity 的根布局的 background 和 paddingTop...来动态切换『着色模式』和全屏模式。...对于 Android 4.4 + ( >= 4.4 且 中添加一个高度为状态栏的高度 View,也就没有黑线的问题,而是通过修改根布局的背景色和根布局的
介绍本案例展示了状态栏的动态交互效果。通过监听页面滚动事件 onDidScroll,随着页面的上下滚动,实现状态栏颜色的变化。搜索框会在滚动时流畅地展开或收起,并伴有自然的透明度过渡效果。...启用沉浸式(设置全屏显示和状态栏为白色),获取状态栏高度存储在 statusBarHeight 变量中,从预定义的数据源 LIST_DATA 加载数据到 dataSource中。...,并为列表添加滚动监听器,以根据滚动位置调整状态栏和导航栏的透明度及展开收起动效。...Opacity影响子组件(如父类Opacity为0.5,若子组件为0.5时,子组件实际Opacity = 0.5*0.5),此处Row来改变状态栏的透明度不受影响其它组件透明度 Row() {...this.negativeOffsetY = yOffset : Constants.MAIN_SCROLLER_OFFSET_Y_ZERO; // 判断导航栏和状态栏背景透明度变化
大多数使用标准系统提供的UI元素(如导航栏,表格和集合)的应用程序会自动适应设备的新外形。背景材料延伸到显示器的边缘,并且UI元件被适当地插入和定位。...一些功能,如宽彩色图像,最好在实际设备上预览。 提供全屏体验。确保背景延伸到显示器的边缘,并且垂直可滚动的布局(如表格和集合)一直延续到底部。 插入必要内容以防止剪辑。...为获得最佳效果,请使用标准的系统提供的界面元素和自动布局构建您的界面。所有应用程序都应遵循UIKit定义的安全区域和布局边距,这些区域可以根据设备和上下文进行适当的填充。...请注意,当背景任务(如录音和位置跟踪)处于活动状态时,iPhone X上的状态栏不会改变高度。 如果您的应用程序目前隐藏状态栏,请重新考虑iPhone X上的决定。...您的应用程序不能影响这些按钮,因此避免在键盘中重复这些按钮造成混乱。请参阅自定义键盘。 资源 下载Photoshop和Sketch 资源中的 iPhone X UI设计模板。 原文链接
Google允许开发者在Android 4.4以上设置状态栏透明或半透明,布局填充全屏;而在5.0以上可直接设置状态栏颜色。...所以为了兼容4.4到5.0之间系统,整理步骤如下: 解决思路是:将状态栏设置为透明,标题栏填充全屏,判断4.4以上标题栏高度为原设计高度+状态栏高度,标题栏设置内距上边距为状态栏高度;如果是4.4以下则使用原设计高度...一、修改styles文件 在values中的styles中 在values-v19.../item> false 在values-v21的styles中...TitleBar设置 如: <TextView android:layout_width="match_parent" android:layout_height="@dimen/title_translucent_height
当应用主题背景时,应用或Activity中的每个视图都会应用其支持的每个主题背景属性。除了这些之外,主题还可以将样式应用于非视图元素,例如状态栏和标题栏。...,无标题栏,全屏 android:theme="Theme.Black" 背景黑色 android:theme="Theme.Black.NoTitleBar" 黑色背景并无标题栏 android:theme...="Theme.Black.NoTitleBar.Fullscreen" 黑色背景,无标题栏,全屏 android:theme="Theme.Wallpaper" 用系统桌面为应用程序背景 android..." 用系统桌面为应用程序背景,无标题栏,全屏 android:theme="Translucent" 半透明 android:theme="Theme.Translucent.NoTitleBar" 半透明...、无标题栏 android:theme="Theme.Translucent.NoTitleBar.Fullscreen" 半透明、无标题栏、全屏 android:theme="Theme.Panel"
meta属性在HTML中占据了很重要的位置。如:针对搜索引擎的SEO,文档的字符编码,设置刷新缓存等。...content="标题">添加到主屏后的标题(iOS 6 新增) 是否启用 WebApp 全屏模式...设置状态栏的背景颜色 只有在...black 状态栏背景是黑色。 black-translucent 状态栏背景是黑色半透明。 设置为 default 或 black ,网页内容从状态栏底部开始。... Chrome高版本全屏 <meta name="renderer" content="webkit
领取专属 10元无门槛券
手把手带您无忧上云