要实现Android沉浸式状态栏,就不得不面对一大推兼容性问题。
下面两篇文章的做法或许大家都试过:

Android 沉浸式状态栏的实现

Android 沉浸式状态栏完美解决方案

第一篇讲到了各种方法解决兼容性问题,不过太繁琐。第二篇文章干脆就复制粘贴一个工具类,相比下思路简单多了,但是要注意的地方也不少。不过他们都是为了兼容5.0以下才会有如此麻烦繁琐的步骤。举个例子,它们状态栏颜色要么是顶层布局的背景颜色,要么就是添加一个状态栏占位层,要么添加一堆难理解的代码,还要让状态栏显示高度在布局中设置android:fitsSystemWindows=“true”等等一些操作。
我这里就教大家另外一种全新的方法:拒绝兼容5.0以下。这种方法更加简单、不需要考虑各种兼容问题。

首先,把我们工程最低兼容版本修改成api21:

android {    compileSdkVersion 27    defaultConfig {        applicationId "com.devnn.kotlindemo"        minSdkVersion 21        targetSdkVersion 27        versionCode 1        versionName "1.0"        testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"    }

其次,修改app主题,去掉actionbar。

一般我们都不用actionbar。不去掉也行,直接使用actionbar作为导航栏也可以。不影响。这里去掉会更加直观。

<resources>    <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">                "colorPrimary">@color/colorPrimary        "colorPrimaryDark">@color/colorPrimaryDark        "colorAccent">@color/colorAccent    style>resources>

最后,我们如果要修改状态栏的颜色就使用一句代码就行了:

kotlin:

//不管是否使用actionbar主题,下面这句代码都有效(api21及以上)window.statusBarColor =ContextCompat.getColor(this,R.color.colorAccent)

java:

//不管是否使用actionbar主题,下面这句代码都有效(api21及以上)getWindow().setStatusBarColor(ContextCompat.getColor(this,R.color.colorAccent))

其它的就什么也不需要做了。像android:fitsSystemWindows=“true”也不要了。像状态栏高度也不用考虑了。
但是要注意的是,默认状态栏的颜色在主题样式中
@color/colorPrimaryDark 这个配置的。而且状态栏颜色也跟activity顶层布局的背影颜色也没有关系。所以我们要设置状态栏颜色就必须通过全局主题配置,或者代码修改statusBarColor设置。
所以现在是不是省事很多了,activity代码也少了很多,项目更加整洁清晰了。

更多相关文章

  1. Android(安卓)NDK
  2. Android高手进阶教程(二十五)之---Android(安卓)中的AIDL!!!
  3. Android特色开发之传感器和语音识别
  4. Android日志系统Logcat源代码简要分析
  5. Android(安卓)MVP设计模式介绍(附简单Demo下载)
  6. android实用代码片段
  7. Android(安卓)Handler 分析学习
  8. inflater在ListView中的使用
  9. Android(安卓)开机自动启动服务

随机推荐

  1. Android之3D物理引擎
  2. android 常用控件的使用 TextView EditTe
  3. UE4 安卓打包纹理格式选择
  4. Android(安卓)技术专题系列之三 -- 编译(bui
  5. Android中Notification的framework层讲解
  6. [译] 在 Android(安卓)使用协程(part III
  7. android之layout_weight体验(实现按比例
  8. android 开发环境搭建
  9. Android(安卓)之 ContentProvider的简介-
  10. Android面试系列文章2018之Android部分Ha