本篇实现的是沉浸式状态栏。先明确下概念,什么是状态栏?直接上图:

什么是沉浸式状态栏?示例图如下:

非沉浸式状态栏                                                                        沉浸式状态栏

       

其实,实质上就是使手机状态栏的颜色改变,使其成为自己想要的颜色。如果把它设置成和APP主色调相同,这样看上去就会好看许多。至于叫法,网上都这么叫,就不用深究它了。下面介绍如何实现,其实很简单,只需三步:

前提:建立的安卓工程必须是API 19以上的才行,也就是Android4.4版本以上。

 步骤1:

在布局文件的最外层Layout上加上两个属性,

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

示例:

步骤2:

在Activity的onCreate()方法中加入两行代码:

getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);  //透明状态栏
       getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);  //透明导航栏

    步骤3:

      在Activity的onCreate()方法中加入一行代码:

requestWindowFeature(Window.FEATURE_NO_TITLE); //设置无标题栏

注意:此句代码一定要加在 setContentView(R.layout.activity_main);之前。

示例:

通过以上三步简单的操作,这样就可以实现状态栏变色啦!

备注:

 一、其实,只需要加入

getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);  //透明状态栏
       getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);  //透明导航栏

这两行代码就能改变状态栏颜色。

但是,会出现状况。

状况1(如果布局文件中不加  android:clipToPadding="true"    android:fitsSystemWindows="true"  这两个属性)

可以看到,标题栏会整体往上移动,占据状态栏的空间。也就是将状态栏当成了APP标题栏的一部分。

状况2(如果onCreate()方法中不加  requestWindowFeature(Window.FEATURE_NO_TITLE);  这句代码)

可以看到,布局多了系统自带的title栏,一般情况下这是不需要的。

二、在步骤3中,requestWindowFeature(Window.FEATURE_NO_TITLE); 这句代码的设置可以不设置在onCreate()方法中,设置成配置文件的theme样式也是可以的,但是要和你的Activity相匹配,示例如下:

三、状态栏的颜色,就是布局文件中最外层的布局的背景颜色。但是,如果最外层的Layout设置宽高都是                    match_parent,而其子布局未设置任何背景颜色,

这样的话,就会使整块屏幕(包括状态栏)都是一个颜色,

如下图:

当然,有时候我们需要将除了标题区域以外的内容区域设置成和APP主色不同的颜色。这时,只需要将需要改变背景颜色的子布局设置一下背景颜色就行啦。

运行效果如下:

通常,这样就是我想要的效果。每个人需求不同,大家自行发挥。

三步实现沉浸式状态栏(即状态栏与APP同色)相关推荐

  1. Android App开发 教你分清“沉浸式”和“透明状态栏”

    首先科普下,什么是"沉浸式"和"透明状态栏"? 1. 大家平时看到一些App运行后,状态栏会变成半透明,或者颜色跟随App的标题栏变色,这种特性叫"T ...

  2. Android 三步简单适配齐刘海系统状态栏

    个人思路: 说到齐刘海适配,最典型的就是MainActivity的几个fragment中有的需要透明系统状态栏 有的不需要, 而一般需要透明系统状态栏的fragment顶部都会放个轮播图,然后在轮播图 ...

  3. HTML5实践 -- 三步实现响应式设计

    HTML5实践 -- 三步实现响应式设计 响应式web设计现在已经不是一个难事了,如果你还不熟悉他,可以参看我的文章<HTML5实践 -- 流式响应式设计>.如果你是一个初学者,可能响应式 ...

  4. android 导航栏半透明,Android 沉浸式/透明式状态栏、导航栏

    前言 Android 从4.4开始引进透明状态栏和导航栏的概念,并且在5.0进行了改进,将透明变成了半透明的效果.虽然此特性最早出现在ios,但不否认效果还是很赞的. 至于4.4以下的手机,就不要考虑 ...

  5. MUI-设置沉浸式状态栏

    第一步:manifest.json =>源码视图 "plus": {/*设置沉浸式状态栏*/"statusbar":{"immersed&quo ...

  6. android 视频沉浸式,Android项目实战(四十一):游戏和视频类型应用 状态栏沉浸式效果...

    原文: Android项目实战(四十一):游戏和视频类型应用 状态栏沉浸式效果 需求: 手机app ,当打游戏或者全屏看视频的时候会发现这时候手机顶部的状态栏是不显示的,当我们从手机顶端向下进行滑动或 ...

  7. 沉浸式状态栏的简易实现

    代码地址如下: http://www.demodashi.com/demo/14922.html ####前言 在android开发的过程中,经常会涉及到沉浸式状态栏的问题,说白了,就是手机屏幕顶部栏 ...

  8. Ionic4设置沉浸式状态栏

    设置沉浸式状态栏体验比较好,而且有些页面设计需要频繁的改变状态栏的颜色,如果不使用沉浸式,就需要页面离开和进入单独设置状态栏背景色,这就导致会有一个非常明显的过度问题,但是使用沉浸式就可以避免这个问题 ...

  9. Android 沉浸式状态栏必须要知道的那些事

    Android 的沉浸式状态栏 文章目录 Android 的沉浸式状态栏 前言 一. 什么是沉浸式状态栏? 二.沉浸式状态栏的实现阶段 2.1.Android4.4 - Android 5.0 (AP ...

最新文章

  1. C语言中的字符串处理
  2. 你就是个普通博士,安心去个三四流高校就可以了!杰青优青不是你努力了就能拿到的......
  3. redis支持的数据类型有哪些?
  4. ML之MaL: 流形学习MaL的概念认知、算法分类、案例应用、代码实现之详细攻略
  5. 零基础学Python-爬虫-5、下载网络视频
  6. java console输出_将java console的输出写入文件
  7. JAVA:Eclipse代码和xml文件的智能提示
  8. JS红宝书学习记录(一)
  9. 阵列天线方向图-均匀直线/平面阵列matlab仿真
  10. php连接mssql的一些相关经验和总结
  11. nginx ajax 504,django+uwsgi+nginx ajax post 504 Gateway Time-out
  12. Qt5 和 OpenCV4 计算机视觉项目:1~5
  13. 公共数据库挖掘第一步-GEO数据库下载表达谱数据和生存数据
  14. 批处理文件——多个QQ一键登录
  15. 超详细解决方案:在与 SQL Server 建立连接时出现与网络相关的或特定于实例的错误。
  16. github 这个网站到底有什么用?
  17. 什么是软件生存生命周期模型?有哪些主要模型?
  18. IIC总线协议,7位,8位,10位地址
  19. 米兔机器人使用说明书_米兔积木机器人APP使用教程
  20. 数字电子技术——复试常见问题

热门文章

  1. 为什么要嫁给物理学3
  2. 【C语言】C语言标准头文件
  3. discuz x3.1 整站搬家换域名攻略
  4. 【运动学】基于matlab GUI三体运动模拟【含Matlab源码 871期】
  5. crond atd 定时处理
  6. Ubuntu上Firefox字体太小--高分屏背锅
  7. 游戏编程中的人工智能技术-演化算法入门
  8. Windows垃圾文件清理(批处理BAT清理垃圾文件)
  9. 什么是机器视觉技术 ?
  10. R语言如何绘制词云图(17)