沉浸式状态栏的实现

来源:互联网 发布:全球erp软件排名 编辑:程序博客网 时间:2024/04/29 03:43

沉浸式状态栏,即状态栏和我们的页面融为一体,从而使界面看起来更美观。此功能是Android4.4之后的版本才加入的,所以在使用时需要做条件限制。

代码实现:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {    // 透明状态栏    getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);    // 透明导航栏   getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION); }

需要注意的是,如果你的环境设置的SDK版本低于4.4(也就是19), 那么上面的Build.VERSION_CODES.KITKAT将会找不到,此时只要修改你的目标SDK的版本即可,AndroidStudio在build.gradle中修改即可:

compileSdkVersion 19

此时编译App,你将会发现沉浸式状态栏已经出现,但是页面却出现了整体上移的情况,导致页面中的内容被状态栏部分覆盖。此时我们只需要在根布局中加入如下属性即可:

android:fitsSystemWindows="true"android:clipToPadding="true"

至此,沉浸式状态栏就已完成。

提示:
如果觉得每个布局文件都加上面的代码很麻烦,当然,确实很麻烦。那么不妨将Java代码写在自定义的BaseActivity的onCreate()方法中,将布局中的那两个属性添加在自定义的Theme中,在AndroidManifest.xml文件中进行配置即可。

注意点:
* 如果应用没有统一的主题或没有统一的ActionBar或NavigationBar,那么将没必要设置沉浸式状态栏;
* 使用了沉浸式状态栏后,页面的布局会发生变化,所以在发布应用前,需要重点对有虚拟按键的手机(如华为)和带有SmartBar的手机(如魅族)进行测试,以避免页面闪烁的问题;

1 0
原创粉丝点击