转载自大力哥博客
最近负责的几个项目都被要求将系统状态栏的颜色设置与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>111、在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);//设置状态栏透明 }}12345678910111213123456789101112132、根布局加入属性
<?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这里是下载地址
新闻热点
疑难解答