首页 > 系统 > Android > 正文

android沉浸式状态栏

2019-11-09 18:05:26
字体:
来源:转载
供稿:网友

[快速搞定]android 状态栏一体化 沉浸式状态栏

转载自大力哥博客

一、前言

最近负责的几个项目都被要求将系统状态栏的颜色设置与app主题色一致,网上找到许多资料都没有一下解决我的问题,最终结合几个解决方案总结出一个最简单、最快的状态栏一体化方案,只要三步你的app就将有更好的用户体验了。

注意:由于Google只在Android4.4之后可以修改状态栏颜色,所以本方案只有在4.4以上才有效果(PS:国内大部分手机都已经使用4.4以上系统,5.0、5.1、6.0等也在逐渐增加,特别是Android6.0 是目前新出的手机的标配,4.4以下都可以不用考虑了)

二、先看效果

先来看看使用前后的效果对比吧:(第一张是使用前,第二张是使用后) 使用前 使用后

三、使用方法

不多说,只要三步即可:

1、拷贝状态栏管理类SystemStatusManager到你的项目中(下载地址在最后);

2、在你的BaseActivity中的onCreate方法中调用一下代码(如果只要某个页面一体化,可以在需要一体化的页面加入改语句):

new SystemStatusManager(this).setTranslucentStatus(R.color.colorPRimary);//设置状态栏透明,参数为你要设置的颜色113、将你项目中的所有页面的根布局加载一个属性:(只在activity中加即可.不要在fragment里面加) android:fitsSystemWindows=”true”

注意:如果状态栏与标题栏中间有一条线导致有过渡感,那么在你项目的主题(style文件)中加入去掉线条的语句即可:

<item name="android:windowContentOverlay">@null</item>11

四、举例

1、在BaseActivity中使用:

/** * Created by HDL on 2016/7/22. */public class BaseActivity extends Activity { public Activity mActivity; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mActivity = this; new SystemStatusManager(this).setTranslucentStatus(R.color.colorPrimary);//设置状态栏透明 }}1234567891011121312345678910111213

2、根布局加入属性

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:fitsSystemWindows="true" android:orientation="vertical" tools:context="com.hdl.newkjdemo.newkjdemo.ui.main.MainActivity"> <include layout="@layout/custom_actionbar" />1234567891012345678910

五、下载地址

这里是下载地址


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表