请注意,Action Bar这个时候也被隐藏了。请永远不要在隐藏状态栏的时候显示Action Bar。 ? 图2. 隐藏状态栏....这个方法防止了状态栏隐藏和展示的时候内容区域的大小变化。...ActionBar actionBar = getActionBar(); actionBar.hide(); 注意以下几点: 一旦UI标签被清除(比如跳转到另一个Activity),如果你还想隐藏状态栏你就必须再次设定它...同步状态栏与Action Bar的变化 在Android 4.1及以上的版本,为了防止在Action Bar隐藏和显示的时候布局发生变化,你可以使用Action Bar的overlay模式。...虽然这会遮盖住上方的一些布局,但是当Action Bar显示或者隐藏的时候,系统就不需要重新改变布局区域的大小,使之无缝的变化。
确保背景延伸到显示器的边缘,并且垂直可滚动的布局(如表格和集合)一直延续到底部。 插入必要内容以防止剪辑。...所有应用程序都应遵循UIKit定义的安全区域和布局边距,这些区域可以根据设备和上下文进行适当的填充。安全区域还可以防止内容覆盖状态栏,导航栏,工具栏和标签栏。 注意状态栏的高度。...请注意,当背景任务(如录音和位置跟踪)处于活动状态时,iPhone X上的状态栏不会改变高度。 如果您的应用程序目前隐藏状态栏,请重新考虑iPhone X上的决定。...同样,全屏iPhone X图稿在显示时被裁剪或被柱状显示全屏显示在4.7 寸iPhone上,确保重要的视觉内容保持在两种显示尺寸上。 避免将交互式控件明确放置在屏幕底部和角落。...当启用自动隐藏时,如果用户没有触摸屏幕几秒钟,指示灯将熄灭。当用户再次触摸屏幕时,它会重新出现。这种行为应该只能用于被动观看体验,如播放视频或照片幻灯片。 请参阅适应性和布局。
要确保背景延伸到屏幕的边缘,并且垂直可滚动的布局(例如表格或集合)能够一直延续到底部。 ? 插入必要内容以防止裁剪。...所有的应用程序都应遵循 UIKit 中定义的安全区域和布局边距,这些区域可以根据设备和上下文进行适当的填充。安全区域还能够防止内容把状态栏、导航栏、工具栏和标签栏覆盖掉。 注意状态栏的高度。...但是请注意,当背景任务(例如录音和位置跟踪)处于活动状态时,iPhoneX 上的状态栏并不会改变高度。 如果你的应用程序对隐藏状态栏进行了隐藏,那么请重新考虑在 iPhone X 上的设计。...iPhone 上的显示高度为 4.7 英寸,并且它的屏幕上提供了更多的垂直空间内容,状态栏占据了你的应用程序本来可以使用的屏幕区域,状态栏还显示了对人们有用的信息,只有在交换附加值时候才能被隐藏。...为了使用户能够轻松的访问主屏幕,可以自动隐藏虚拟 Home 键。当启用自动隐藏时,如果几秒钟内用户没有触摸屏幕,那么Home 键将会被自动隐藏。如果用户再次触摸屏幕,虚拟 Home 键会重新出现。
但是这里存在两个问题 此时最热评论虽然没有了,但是那部分会被空出来,这是因为我们之前对cell的高度进行了缓存,当设置cell高度时,发现cellHeight不为零,则直接返回高度,不会重新计算。...因此我们这里将cellHeight设置为0,当设置cell的cellHeight时就会重新计算cellHeight。...其实现原理为: 布局button时,先将button放在现在的位置上,然后设置button的transform下移一个屏幕的高度 btn.transform = CGAffineTransformMakeTranslation...button全部恢复完成的时候将self.time取消 [self.time invalidate]; 点击状态栏返回tableView顶部实现 当点击状态栏的时候,tableView会自动滚动到最上方...而且只能设置状态栏的状态,却没有办法拿到状态栏做一些事情,使用控件遮挡状态栏也会被状态栏覆盖。
、应用界面和导航条的突兀效果,更多的是提升用户体验,比如下面的效果,当页面中的标题栏颜色和状态栏不一样时,视觉上显然是很突兀的,大家可以纵观市场上的绝大部分主流应用,比如支付宝,微信,或者各个游戏,都会发现...: Array): T; 两个参数,第一个参数types,类型是Array ,非必填,配置扩展安全区域的类型,当未添加metadata配置项时,页面不避让挖孔...窗口管理中,也是需要注意,当沉浸式设置之后,安全区域的内容,一定要避开导航条和状态栏,和上面的安全区域实现的方式是一样的,这个一定要注意。...导航条和状态栏隐藏,一般会出现游戏中。...Code is ${err.code}, message is ${err.message}`); }); 相关总结 沉浸式效果实现后,一定要注意安全区域的内容避让,防止内容延伸后被导航条或者状态栏遮挡
详细介绍 解决状态栏和布局顶部重合 上面已经说了,沉浸式原理就是使整个布局延伸到状态栏和导航栏,既然这样必然导致一个问题,就是状态栏和布局顶部重叠,直接看图 ?...View.INVISIBLE:隐藏状态栏,同时Activity会伸展全屏显示。 View.SYSTEM_UI_FLAG_FULLSCREEN:Activity全屏显示,且状态栏被隐藏覆盖掉。...View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN:Activity全屏显示,但状态栏不会被隐藏覆盖,状态栏依然可见,Activity顶端布局部分会被状态遮住。...状态栏和导航栏的隐藏 android 4.1以上支持状态栏和导航栏隐藏 ? 总结 至此,ImmersionBar库的用法与原理都讲完了。...网上关于沉浸式的介绍铺天盖地,但是很少有人把它们封装起来,当开发者调用的时候还得自己去写大量代码,消耗大家时间。写这个库的目的就是方便大家的开发,解决大家在沉浸式方面出现的问题。
STABLE 就是会始终给系统 UI 保留一个空间(不管系统 UI 有没有消失,并且悬浮在我们自己的 UI 视图上面 ) // 可以看到这种效果,状态栏仍然还在,只是你仔细发现,原布局有一部分被状态栏给覆盖了...属性,会发现在切换应用或者触碰系统 UI 的时候,这个时候我们的状态栏就会出来,然后我们的 UI 布局就会“被压在”状态栏的下面(实际上是把我们的布局重新 layout 了)然后如果添加 STABLE...(这样我们的 UI 布局是没有被重新 layout 的) ?...screnn_stable.png 5.沉浸模式 // 所谓沉浸模式就是一开始我们的 UI 布局是全屏的,状态栏和虚拟导航键也是隐藏的,当我们需要的系统 UI 的时候,从状态栏的位置下拉就可以出现系统...View.SYSTEM_UI_FLAG_IMMERSIVE:单独使用是没有任何意义的,需要和 View.SYSTEM_UI_FLAG_FULLSCREEN、View.SYSTEM_UI_FLAG_HIDE_NAVIGATION 配合使用,当出现隐藏的系统栏的时候
,故不能使用android:fitsSystemWindows属性,故在实现上面效果时带有底部导航栏手机上就会存在一个大坑,解决办法见第3章节。...同时不使用android:fitsSystemWindows属性,怎么让布局不遮挡状态栏文字,解决办法见第4章节。 3....--这个是隐藏的布局,然后通过动态的设置高度达到效果--> <LinearLayout android:id="@+id/ll_bar" android:layout_width="fill_parent.../** * 动态的设置状态栏 实现沉浸式状态栏 */ private void initState() { //当系统版本为4.4或者4.4以上时可以使用沉浸式状态栏 if (Build.VERSION.SDK_INT...这个主要通过监听AppBarLayout滑动的距离,向上滑动,如果大于标题栏的高度,则要动态改变标题栏文字颜色,当标题栏折叠时,改变状态栏文字颜色及返回铵钮图标,同时状态栏文字颜色变成暗色。
划瓶解锁的基本思路很简单,当手指在屏幕上滑动时,拦截并处理滑动事件,使锁屏页面随着手指运动,当运动到达一定的阀值时,用户手指松开手指,锁屏页自动滑动到屏幕边界消失,如果没有达到运动阀值,就会自动滑动到起始位置...,通过其他标签设定状态栏和导航栏显示或隐藏,以及显示或隐藏的样子。...bar被呼出时(比如从屏幕下边缘开始向上做滑动手势),使bar在无相关操作的情况下自动再次隐藏;对于SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION,开发者容易被其中的HIDE_NAVIGATION...,由上面可知,也不能隐藏状态栏,只是使状态栏浮在屏幕上层。 ...这个“半透明化”包括了状态栏和通知栏,当开发者让应用支持这个新特性的时候,状态栏和导航栏可以单独/同时变为渐变的半透明样式,如下图: ?
当 SYSTEMUIFLAGIMMERSIVE、SYSTEMUIFLAGHIDENAVIGATION 和SYSTEMUIFLAG_FULLSCREEN 三个 flag 一起使用的时候,可以隐藏状态栏与导航栏...粘性标签——这就是你设置了 IMMERSIVE_STICKY 标签时的 UI 状态,用户会向内滑动以展示系统栏。半透明的系统栏会临时的进行显示,一段时间后自动隐藏。...1.1.2 两种使用这个属性的方式: 在使用时候,我们通常需要考虑的是状态栏一值显示在顶部而不会隐藏或者被遮挡(其他 app 情况如:读书 app 或者是游戏 app 则需要隐藏顶部状态栏),所以只需要通过代码设置...-Android5.0 之间的效果如贴图,状态栏顶部是有一个黑色阴影渐变,在5.0版本版本以上被修复了。...,状态栏依然可见,Activity顶端布局部分会被状态栏遮住。
2.修正RecyclerView头部布局不能铺满问题。 3.PopupWindow的使用。 4.DisplayUtils工具类对状态栏的修改。...3.destroy()是用来关掉改页面时把刷新View的一些动画等释放,防止内存泄漏。...View的一些动画等释放,防止内存泄漏。...如果需要有没有更多加载更多数据提示同样需要在布局中写好,然后在onSatae中根据状态对加载和没有跟多显示提示进行显示隐藏操作。...解决办法:不通过RecyclerView设置分割线,直接在布局自定义分割线。
2.通话页面隐藏时悬浮窗显示,通话页面显示时悬浮窗隐藏,可以看出悬浮窗和Activity的生命周期相关联,所以悬浮窗的Service和通话页面的Activity是通过bind去绑定的。...走到onDestory的时候将view移除,对于Activity2页面来说 当onResume的时候 解绑Service,当onstop的时候 绑定Service。...= null //浮动布局 private var mFloatingLayout: View?...2.用户在通话页面(singleInstance模式),点击Home键 应用在后台运行的时候,通话结束,Activity被finish,此时从任务程序中切回应用你会发现打开的竟然是通话页面!...(我目前的解决方案)设置一个标记位,标记当前是否在通话,在onCreate中如果通话已经结束了,跳转到一个过渡页面(标准模式),过渡页面中finish,就可以了,添加过渡页面的原因是我们不知道上一个页面是哪里
划瓶解锁的基本思路很简单,当手指在屏幕上滑动时,拦截并处理滑动事件,使锁屏页面随着手指运动,当运动到达一定的阀值时,用户手指松开手指,锁屏页自动滑动到屏幕边界消失,如果没有达到运动阀值,就会自动滑动到起始位置...,通过其他标签设定状态栏和导航栏显示或隐藏,以及显示或隐藏的样子。...bar被呼出时(比如从屏幕下边缘开始向上做滑动手势),使bar在无相关操作的情况下自动再次隐藏;对于SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION,开发者容易被其中的HIDE_NAVIGATION...,由上面可知,也不能隐藏状态栏,只是使状态栏浮在屏幕上层。...这个“半透明化”包括了状态栏和通知栏,当开发者让应用支持这个新特性的时候,状态栏和导航栏可以单独/同时变为渐变的半透明样式,如下图: ?
但是,但是,但是,用在无人值守的自助终端上,总是把之前隐藏掉的导航栏和状态栏显示出来。这是不可接受的。总不能让设备给用户随意摆弄吧,进入系统把你应用给搞没了都有可能。...在Activity中隐藏状态栏,要在setContentView(R.layout.activity_main)之前调用。 而Dialog中,需要在dialog.show()方法之后去调用。...在Activity中,虽然在setContentView(R.layout.activity_main)之前调用隐藏状态栏的代码,但是一旦Activity跳转,就又出来了, 解决办法是在隐藏状态栏逻辑代码的下面...,加上一个状态栏变化的响应处理,在把它隐藏掉。...visibility) { int uiOptions = View.SYSTEM_UI_FLAG_LAYOUT_STABLE | //布局位于状态栏下方
当然,如果设置了隐藏状态栏,或者导航栏,并且没有让布局随着隐藏而动态变化的话,就会看到被覆盖的padding,默认是白色,如下图,隐藏状态栏前后的对比: ? 没隐藏状态栏 ?...隐藏了状态栏 以上是DecorView对状态栏的添加机制,总结出来就是一句话:只要状态栏/导航栏不设置隐藏,设置颜色就会有效。...DecorView内容区域的扩展与fitsystemwindow的意义 fitSystemWindow属性可以让DecorView的内容区域延伸到系统UI下方,防止在扩展时被覆盖,达到全屏、沉浸等不同体验效果...仅仅设置隐藏导航栏 上图中由于设置了SYSTEM_UI_FLAG_HIDE_NAVIGATION,所以没有导航栏View被添加,DecorView中只有状态栏背景(1)View与根内容布局,从图中的点2...总结 状态栏与导航栏颜色的设置与其显示隐藏有关系,一旦隐藏,设置颜色就无效,并且颜色是通过向DecorView根布局addView的方式来实现的。
沉浸式算是目前Android行业比较流行的一种App设计风格,将菜单栏北京设置为导航栏的颜色,感觉顶部状态栏像是被入侵了一样,因此称为沉浸式菜单栏。本文将介绍三种方式去实现沉浸式状态栏。 ?...三种方式实现沉浸式状态栏 首先看下第一种方式 系统的方式沉浸式状态栏实现 步骤一 当系统版本为4.4或者4.4以上时可以使用沉浸式状态栏 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT..."/> 接着看下第二种方式 实现思路,添加隐藏布局,然后我们动态的计算状态栏的高度,然后把这个高度设置成这个隐藏的布局的高度,便可以实现 在这里我们通过反射来获取状态栏的高度...实现沉浸式状态栏 * */ private void initState() { //当系统版本为4.4或者4.4以上时可以使用沉浸式状态栏 if (...--这个是隐藏的布局,然后通过动态的设置高度达到效果--> <LinearLayout android:id="@+id/ll_bar" android:layout_width
DialogFragment隐藏导航栏 在 Android 中,使用 DialogFragment 显示对话框时,如果您希望隐藏系统导航栏(如状态栏和导航键),可以通过设置相关的系统 UI 标志来实现。...onViewCreated: 在视图创建后设置系统 UI 可见性标志,隐藏导航栏和状态栏。 onStart: 设置对话框窗口的布局参数,使其覆盖整个屏幕。...这种方法允许您的 DialogFragment 在显示时全屏,并隐藏状态栏和导航栏。...在创建 Dialog 时,可以使用 Window 类提供的一些标志来隐藏导航栏。...systemUiVisibility 属性用于隐藏系统导航栏和状态栏。 通过这些设置,当显示 Dialog 时,它将隐藏系统导航栏和状态栏,实现全屏显示。
上文提到的 activity_main.xml 即为应用主界面的布局文件。...WebView 允许执行 JavaScript 脚本 webView.getSettings().setJavaScriptEnabled(true); // 确保跳转到另一个网页时仍然在当前...3.2 隐藏状态栏 该方案在异形屏下会有些问题,且本文将不考虑异形屏的适配。 光隐藏标题栏浏览体验还不够沉浸,得把状态栏也隐藏了,不能让用户看到时间和电量!?...修改 「MainActivity.java」 文件,在生命周期 onCreate 内调用 setContentView 函数「之前」添加以下两行代码: // 设置为全屏(隐藏状态栏) requestWindowFeature...我们可以通过以下两种方法来修改: 修改 WebView 实例的按键监听器: // 设置 WebView 的按键监听器,覆写监听器的 onKey 函数,对返回键作特殊处理 // 当 WebView 可以返回到上一个页面时回到上一个页面
意思是说viewDidLoad在视图被加载后调用。如果使用了布局文件,那么会在布局文件加载后被调用。...Default does nothing 视图被驳回时调用,覆盖或以其他方式隐藏。默认情况下不执行任何操作。...iOS7新增加了导航控制器侧滑手势,当触发侧滑返回时,会调用系统的viewWillDisappear:方法,取消侧滑返回时又会调用viewWillAppear:方法。...ViewDidLoad:view加载完毕 当控制器的loadView方法执行完毕,view被创建成功后,就会执行viewDidLoad方法。...内存警告 首先要判断一下,当前view有没有被显示。如果正在显示,做处理,会让用户感觉很不舒服。 更严谨一点,还需要判断view是否已经加载。如果没有加载,就不需要干掉了。
常用meta标签列表,为了加强记忆,ytkah采用先放代码再放注释的形式,献给有需要的朋友们 ↑↑↑ 设置页面编码为UTF8,防止乱码,需要页面保存为UTF8...30秒后自动刷新 ↑↑↑ 网页将在设定的5秒时间后...format-detection" content="email=no"> 禁止邮箱识别 禁止识别地址和跳转到地图功能...-- 启用 WebApp 全屏模式 --> 隐藏状态栏/设置状态栏颜色:只有在开启WebApp全屏模式时才生效。..." content="blank"> 隐藏状态栏,苹果系专属
领取专属 10元无门槛券
手把手带您无忧上云