Android实现沉浸式状态栏功能
作者:季风__ 发布时间:2022-10-25 23:19:36
标签:Android,沉浸式,状态栏
Android中实现沉浸式状态栏的功能,供大家参考,具体内容如下
1. 先上效果图,实现沉浸式状态栏有两种方式,一种是通过写Theme主题的方式,另一种是写代码的方式。若要使多个页面出现沉浸式状态栏,则使用主题的方式更方便,如果只要使单个页面出现,则使用代码方式更好!当然了,看个人喜好而去。
2. 先来介绍写主题的方式
2.1 先在res包下新建values-v19和values-v21两个包,为了兼容Android高低版本
2.2 然后分别在包中新建styles.xml文件
2.2.1 values-v19包中styles.xml文件中的内容为:
<style name="AppTheme.TransparentStausBar" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="windowActionBar">false</item> //取消系统默认的actionBar
<item name="windowNoTitle">true</item> //取消actionBar的标题
<item name="android:windowTranslucentStatus">true</item> //允许页面可以拉伸到顶部状态栏并且定义顶部状态栏透明,安卓4.4才有
<item name="android:windowTranslucentNavigation">true</item>//设置虚拟键透明
</style>
2.2.2 values-v21包中styles.xml文件中的内容为:
<style name="AppTheme.TransparentStausBar" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="windowActionBar">false</item> //取消系统默认的actionBar
<item name="windowNoTitle">true</item> //取消actionBar的标题
<item name="android:windowTranslucentStatus">false</item> //允许页面可以拉伸到顶部状态栏并且定义顶部状态栏透明,安卓4.4才有
<item name="android:windowTranslucentNavigation">true</item> //设置虚拟键透明
<item name="android:statusBarColor">@android:color/transparent</item> //设置状态栏的颜色为透明
</style>
2.2.3 在values包中的styles.xml文件中添加一个空的,起到后备作用
<style name="AppTheme.TransparentStausBar" parent="AppTheme">
</style>
2.2.4 最后一点需要在对应的布局文件中添加,然后在AndroidManifest.xml引用
android:fitsSystemWindows="true"
写主题的方式就算完成了
3.再来介绍一下写代码的方式
private void initBar() {
getWindow().requestFeature(Window.FEATURE_NO_TITLE); //取消状态栏的标题
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {//判断SDK的版本是否>=21
Window window = getWindow();
window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS | WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION); //允许页面可以拉伸到顶部状态栏并且定义顶部状态栏透名
window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION | //设置全屏显示
View.SYSTEM_UI_FLAG_LAYOUT_STABLE);
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
window.setStatusBarColor(Color.TRANSPARENT); //设置状态栏为透明
window.setNavigationBarColor(Color.TRANSPARENT); //设置虚拟键为透明
}
ActionBar actionBar = getSupportActionBar();
actionBar.hide(); //将actionBar隐藏
}
写代码的方式也完成了
Tip: 小白,写得不好请见谅。若有不对的地方请留言。
来源:https://blog.csdn.net/weixin_43796132/article/details/102250632
0
投稿
猜你喜欢
- 一、先明确几个基本概念1、伪随机数:pseudo-random number generators ,简称为:PRNGs,是计算机利用一定的
- 即刻点赞展示点赞的数字增加和减少并不是整个替换,而是差异化替换。再加上动画效果就看的很舒服。自己如何实现这种数字切换呢?下面用一张图来展示我
- 文件路径或者保存模板出现非法字符判断1)不为空判断string strTemplateName = txtTemplateName.Text
- 在使用SpringBoot做接口访问如何做接口的限流,这里我们可以使用google的Guava包来实现,当然我们也可以自己实现限流,Guav
- MyEclipse *的下载,找到MyEclipse的各种历史版本下载页面:http://www.myeclipsecn.com/简单说下,
- 调研了一下目前的路由框架,ARouter(阿里的),ActivityRouter都使用了apt技术 编译时注解,个人想法是一口吃不成胖子,先
- 在intellij中忽略提交文件,分两种情况,文件没有纳入版本管理第一种方法文件还没有纳入版本管理,这种通过 svn的ignore配置ver
- 前言基本语法首先我们要知道java的基础语法。1.由26个英文字母大小写,0-9,_或$组成2.数字不可以开头3.不可以使用关键字和保留字,
- 加坐标可以使用https://mvnrepository.com/来查找先加以下坐标:使用的数据库介绍:配置连接数据库:spring: &n
- 功能:通过响应UI Textbox 的值向ListView 绑定新添加的纪录。UI XAML 代码<Grid Margin="
- 一、输入输出流对象cout:标准输出流cerr:标准出凑 和cout(只是用于如果是错误时要输出的)cin :&nb
- 一个是新浪微博,腾讯微博的分享按钮,一个是他们的绑定情况(其实就是是否授权)。点击微博分享中新浪或腾讯按钮,就进行相应的授权(若没授权),显
- 通常C#使用基于XML的配置文件,不过如果有需要的话,比如要兼顾较老的系统,可能还是要用到INI文件。但C#本身并不具备读写INI文件的AP
- @JSONField看源码它可以作用于字段和方法上。引用网上说的,一、作用Field@JSONField作用在Field时,其name不仅定
- 一、在学习枚举之前,首先来听听枚举的优点。1、枚举能够使代码更加清晰,它允许使用描述性的名称表示整数值。2、枚举使代码更易于维护,有助于确保
- 一、基本使用它们是 LockSupport 类中的方法// 暂停当前线程LockSupport.park(); // 恢复某个线程的运行Lo
- 实现目标:使用springMVC前端控制器,跳转到WEB-INF的templates下面的前端页面图示1.目录结构2.创建一个maven的w
- 目录1.堆空间的基本结构:2.空间分配担保机制3.如何判断一个对象已经无效4 不可达的对象并非“非死不可”5 如何判断一个常量是废弃常量?6
- 文件下载这种事情是很耗时的。之前使用AsyncTask这样的异步类来做下载,然后切到后台就 * 掉。所以打算试试Service。(不过按目前那
- 没有阿里云数据库的可以买个最便宜的,我是新用户9.9元买了一个1.买到后点击左上角的工作台2.3. 4. 5.6.7.8