管理状态栏和导航栏

本文介绍了如何在Android中管理状态栏和导航栏,包括如何隐藏和淡化它们以实现沉浸式体验。针对不同Android版本,提供了隐藏状态栏的方法,并讨论了使用SYSTEM_UI_FLAG_IMMERSIVE_STICKY标识下,如何在用户交互时临时显示半透明系统栏并自动恢复隐藏状态。
摘要由CSDN通过智能技术生成
系统栏(system bar)是用来显示通知、设备状态和导航的屏幕区域。一般来说,系统栏(system bar)包括状态栏(status bar)和导航栏(navigation bar),它们与应用程序同时显示在屏幕上。而相册、视频等沉浸式的应用可以淡化系统栏来创造一个更加专注的体验环境,甚至是完全隐藏系统栏。

下面来介绍如何在不同的版本中淡化和隐藏系统栏,营造一个沉浸式的用户体验,同时还可以快速操作系统栏。

注:本文参考Android Develop Training - Manager the System UI。

一、淡化系统栏(System Bar)

由于Android的早期版本没有提供API来淡化系统栏,下面只介绍如何在Android 4.0及更高的版本中淡化系统栏。

(1).淡化状态栏和导航栏
状态栏和导航栏在被淡化后,依旧会占据屏幕空间,只是其中的图标和操作按钮变成了灰白色的小圆点。
使用SYSTEM_UI_FLAG_LOW_PROFILE标识,可以达到淡化状态栏和导航栏的效果。代码如下。
// This example uses decor view, but you can use any visible view.
View decorView = getActivity().getWindow().getDecorView();
int uiOptions = View.SYSTEM_UI_FLAG_LOW_PROFILE;
decorView.setSystemUiVisibility(uiOptions);

一旦用户操作了状态栏和导航栏,这个标识就会被清除,使状态栏和导航栏重新显现。标识被清除后,如果需要再次淡化状态栏和导航栏,必须重新设定这个标识。


     

左图为默认状态,右图为淡化之后的状态。


(2).显示状态栏和导航栏
在状态栏和导航栏添加了SYSTEM_UI_FLAG_LOW_PROFILE标识被淡化后,如果需要再次显示出来,可以使用如下方法清除标识。
View decorView = getActivity().getWindow().getDecorView();
// Calling setSystemUiVisibility() with a value of 0 clears
// all flags.
decorView.setSystemUiVisibility(0);

二、隐藏状态栏(Status Bar)

隐藏状态栏可以让应用得到更多的展示空间,从而提供一个更加沉浸式的用户体验。下面介绍如何在不同的Android版本中隐藏状态栏。

左图为显示状态栏的效果,右图为状态栏隐藏后的显示效果。

     

(1).在4.0及以下版本中隐藏
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值