android沉浸式状态栏

[快速搞定]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);//设置状态栏透明,参数为你要设置的颜色
  
  
  • 1
  • 1
  • 3、将你项目中的所有页面的根布局加载一个属性:(只在activity中加即可.不要在fragment里面加) android:fitsSystemWindows=”true”

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

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

四、举例

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);//设置状态栏透明
    }
}
  
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

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" />
  
  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

五、下载地址

这里是下载地址

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值