首页 > 其他分享 >Android实现沉浸式状态栏功能

Android实现沉浸式状态栏功能

时间:2023-07-22 10:56:24浏览次数:31  
标签:actionBar 沉浸 状态栏 代码 FLAG window Android true

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隐藏
 }

写代码的方式也完成了

   

标签:actionBar,沉浸,状态栏,代码,FLAG,window,Android,true
From: https://www.cnblogs.com/wanglongjiang/p/17572976.html

相关文章

  • android studio 历史版本下载
    AndroidStudio历史版本下载教程概述在这篇教程中,我将向你展示如何下载AndroidStudio的历史版本。首先,我会给出下载的整个流程,并使用表格列出每个步骤。然后,我将逐步解释每个步骤需要做什么,并提供相应的代码示例并对其进行注释。下载流程步骤描述步骤1打开Android......
  • android studio 不混淆 静态方法
    AndroidStudio不混淆静态方法的实现作为一名经验丰富的开发者,我将向您解释如何在AndroidStudio中实现不混淆静态方法。下面是实现该目标的步骤:步骤操作1打开Proguard文件2配置Proguard规则3构建和运行应用接下来,我将解释每个步骤需要做什么,并提供代码示......
  • android studio sd卡存放音频文件音频路径
    AndroidStudio中使用SD卡存放音频文件的路径对于Android开发者来说,使用SD卡存放音频文件是一项基本任务。在这篇文章中,我将向你展示如何在AndroidStudio中实现这个目标。整体流程下表展示了整个过程的步骤:步骤操作1在AndroidManifest.xml文件中添加SD卡读写权限......
  • android studio grade下载很慢
    AndroidStudioGradle下载速度慢的解决方法介绍AndroidStudio是开发Android应用程序的首选IDE。然而,有时候在使用AndroidStudio的过程中,我们可能会遇到Gradle下载速度很慢的问题。这是因为Gradle默认从远程仓库下载依赖,而且这些仓库可能在某些地区访问速度较慢。本文将介绍一......
  • android studio annotationProcessor
    AndroidStudioAnnotationProcessor在Android开发中,我们经常使用注解来简化代码的实现和提高开发效率。AndroidStudio提供了一个名为AnnotationProcessor的功能,用于在编译期间处理这些注解。本文将介绍AnnotationProcessor的基本概念和使用方法,并提供一些代码示例。AnnotationP......
  • Android自定义弹窗
    继承android.app.AlertDialogpackagecom.jay.component;importandroid.content.Context;importandroid.graphics.Bitmap;importandroid.util.Log;importandroid.view.View;importandroid.view.Window;importandroid.widget.Button;importandroid.widget.Image......
  • Android生成二维码
    引入jar包链接:https://pan.baidu.com/s/15bWmBGHR6InqQG_Hi6Ab7A提取码:1234utilspackagecom.jay.common;importandroid.graphics.Bitmap;importandroid.graphics.Color;importcom.google.zxing.BarcodeFormat;importcom.google.zxing.EncodeHintType;importcom.......
  • 使用本地iconfont 网页显示Android不显示
    使用本地iconfont网页显示Android不显示的解决方法1.流程概述下面是解决"使用本地iconfont网页显示Android不显示"的整个流程。可以使用以下表格展示步骤:步骤描述1引入iconfont资源文件2在HTML文件中引入iconfontCSS样式3设置文本的字体样式为iconfont......
  • Android settings开发
    AndroidSettings开发介绍在Android应用开发过程中,我们经常需要让用户在设置页面中进行一些个性化的配置。Android提供了一个SettingsAPI,使得开发者可以轻松地创建和管理应用的设置界面。本文将介绍如何使用Android的SettingsAPI来开发设置页面,并提供相关的代码示例。创建设置......
  • Android opensv 检测画面变化
    AndroidOpenCV检测画面变化介绍在Android开发中,我们经常会面临处理图像和视频的需求。而对于图像处理中的一个重要任务就是检测图像的变化。OpenCV是一个强大的图像处理库,它提供了丰富的功能和算法,可以帮助我们实现各种图像处理任务。本文将介绍如何使用AndroidOpenCV来检测......