何为沉浸模式,沉浸式顶栏,变色龙状态栏

发布网友 发布时间:2022-04-22 22:21

我来回答

1个回答

热心网友 时间:2022-04-24 11:32

沉浸和变色,一个很古老的话题了,因为近期在学习Android,外加我个人对UI体验的偏执,把这部分代码也都学习并测试过,纠正了以往错误的观点,也希望能纠正至今为止依旧很多人错误的观点。。

首先,我用中文列出几个概念;“沉浸”(Immersive),“透明”(Translucent),“变色”,“状态栏”(StatusBar),“导航栏”(NavigationBar)。。另外最后还会提到“全屏”之类的。。

简单来说,“沉浸”和“透明”都是Android4.4加入的新特性,也就是判断VERSION.SDK必须大于或等于API 19,调用才会生效,这一点4.4和5.0包括6.0在使用方法及具体实现代码上都没有区别(但显示效果略有区别,原因其一是Android4.4存在上下阴影的影响)。。

设置“透明”主要有两个方法,在xml主题文件里面设置和在源代码里面调用setFlags()方法(这个方法一直都有,只不过“透明”这个flag是4.4才加入进去的),效果一样,代码也很简单,包括“状态栏”和“导航栏”都可以选择透明化。

设置“沉浸”则可以在源代码里面调用setSystemUiVisibility()方法(这个方法也是一直都有,只不过4.4加入了两个新的flag用来获得“沉浸”效果),代码量比设置“透明”略多,但也不过十几行而已。

而“变色”在Android上是从来就不存在的一个概念!!只是大家根据app显示效果自己YY出来的一个词。在API 19(Android4.4)里面,Google仅仅提供了“透明”这个方法,但是很多开发者发现,在开发过程中如果使用的是带有深色ActionBar的主题,这时对“状态栏”的透明会带来极其丑陋不协调的显示效果,像这个样子(图片来源网络,黑色的那一栏就是ActionBar):

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com