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

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

一、前言

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

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

二、先看效果

先来看看使用前后的效果对比吧:(第一张是使用前,第二张是使用后)
[快速搞定]android 状态栏一体化 沉浸式状态栏_第1张图片 [快速搞定]android 状态栏一体化 沉浸式状态栏_第2张图片

三、使用方法

不多说,只要三步即可:

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

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

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

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

<item name="android:windowContentOverlay">@nullitem>

四、举例

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);//设置状态栏透明
    }
}

2、根布局加入属性


<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" />

五、下载地址

这里是下载地址

你可能感兴趣的:(android)