安卓实现沉浸式状态栏(通过theme主题进行设置)
来源:互联网 发布:终结者创世纪知乎 编辑:程序博客网 时间:2024/05/01 20:03
综述:
沉浸式状态栏在许多app中已经被广泛使用了,项目中使用了沉浸式状态栏,有代码设置和theme主题设置两种方式,我的项目是以theme主题的方式来使用的,过程当中也遇到了不少的坑,现在把相关知识点记录下来,以备后期需要的时候使用。
本文章中的沉浸式状态栏,实际上应该表述为透明式状态栏更为准确。
在布局中需要延展到状态栏的控件下添加以下内容,表示保留status栏的空间,否则,布局的内容会挤到状态栏中。
android:fitsSystemWindows="true"
一、在6.0(23)以上:
各个item的用法已经添加了备注
<style name="AppTheme.ImmersiveThemewitletext"> <!-- true: status栏会有一层阴影;false: status栏没有阴影;当该项为true时,则name="android:windowLightStatusBar"设置无效,永远为白色 --> <item name="android:windowTranslucentStatus">false</item> <!-- 使底部导航栏透明 --> <item name="android:windowTranslucentNavigation">true</item> <!-- 给status栏设置透明颜色 --> <item name="android:statusBarColor">@android:color/transparent</item> <!-- true: status栏的图标和文字为黑色;false: sstatus栏的图标和文字为白色 --> <item name="android:windowLightStatusBar">true</item> </style>
效果图:
把"android:windowLightStatusBar"项改为“false”:
<style name="AppTheme.ImmersiveThemewitletext"> <!-- true: status栏会有一层阴影;false: status栏没有阴影;当该项为true时,则name="android:windowLightStatusBar"设置无效,永远为白色 --> <item name="android:windowTranslucentStatus">false</item> <!-- 使底部导航栏透明 --> <item name="android:windowTranslucentNavigation">true</item> <!-- 给status栏设置透明颜色 --> <item name="android:statusBarColor">@android:color/transparent</item> <!-- true: status栏的图标和文字为黑色;false: sstatus栏的图标和文字为白色 --> <item name="android:windowLightStatusBar">false</item> </style>
效果图:把"android:windowTranslucentStatus"项改为"true":
<style name="AppTheme.ImmersiveThemewitletext"> <!-- true: status栏会有一层阴影;false: status栏没有阴影;当该项为true时,则name="android:windowLightStatusBar"设置无效,永远为白色 --> <item name="android:windowTranslucentStatus">true</item> <!-- 使底部导航栏透明 --> <item name="android:windowTranslucentNavigation">true</item> <!-- 给status栏设置透明颜色 --> <item name="android:statusBarColor">@android:color/transparent</item> <!-- true: status栏的图标和文字为黑色;false: sstatus栏的图标和文字为白色 --> <item name="android:windowLightStatusBar">false</item> </style>
效果图:
二、在5.0(21)以上:
在5.0版本中,并没有"<itemname="android:statusBarColor">@android:color/transparent</item>"属性。在values-v21下的style.xml中添加如下主题:
<style name="AppTheme.ImmersiveTheme"> <!-- true: status栏会有一层阴影;false: status栏没有阴影--> <item name="android:windowTranslucentStatus">false</item> <!-- 使底部导航栏透明 --> <item name="android:windowTranslucentNavigation">true</item> <!-- 给status栏设置透明颜色 --> <item name="android:statusBarColor">@android:color/transparent</item> </style>
效果图如下:
把"<itemname="android:windowTranslucentStatus">true</item>"改为true:
<style name="AppTheme.ImmersiveTheme"> <!-- true: status栏会有一层阴影;false: status栏没有阴影--> <item name="android:windowTranslucentStatus">true</item> <!-- 使底部导航栏透明 --> <item name="android:windowTranslucentNavigation">true</item> <!-- 给status栏设置透明颜色 --> <item name="android:statusBarColor">@android:color/transparent</item> </style>效果图如下:
三、在4.4(19)以上:
在values-v19文件夹下的styles.xml中添加如下主题
<style name="AppTheme.ImmersiveThemewitletext"> <item name="android:windowTranslucentNavigation">true</item> <item name="android:windowTranslucentStatus">true</item> </style>
由于没有机器及模拟器,没有效果图。 0 0
- 安卓实现沉浸式状态栏(通过theme主题进行设置)
- 安卓实现沉浸式状态栏
- 安卓实现沉浸式状态栏
- 安卓沉浸式状态栏
- 安卓沉浸式状态栏
- 安卓沉浸式状态栏
- 安卓沉浸式状态栏
- 安卓沉浸式状态栏
- 安卓沉浸式状态栏
- 安卓沉浸式状态栏
- 安卓沉浸式状态栏
- 安卓沉浸式状态栏延生与透明设置
- 安卓状态栏问题详解大全(沉浸式状态栏)
- 关于在安卓4.4上实现沉浸式状态栏
- Android设置沉浸式状态栏和Material主题
- 安卓学习笔记--- Android 沉浸式状态栏的实现方法,状态栏透明实现
- 安卓沉浸式(透明)状态栏学习小结
- 安卓沉浸式状态栏开发
- C# 线程
- Bootstrap 网格系统
- C++笔记(二)std::string用法总结
- 淘宝每天自动领取金币/京东每天自动领取金豆/苏宁打卡获取云钻
- Cannot define dimension expressions when an array initializer is provided
- 安卓实现沉浸式状态栏(通过theme主题进行设置)
- Java批量修改文件名称
- Android开发之---圆形ImageView头像
- HTML与CSS基础之属性选择器(二)
- springMVC(二)、springMVC向前台页面传值及前台页面显示值
- leetcode_35. Search Insert Position
- java中23种常见的设计模式
- java内码和外码
- android sensor移植