为什么要使用沉浸式状态栏呢?
--为了用户体验。
因为有的app界面的风格都是差不多的,比如支付宝,用的蓝色调风格,为了让状态栏看起来不那么突兀,我们可以使用沉浸式状态栏。
沉浸式状态栏在游戏app中用的比较多,也是为了用户体验。好了,废话不多说,直接来了解一下如何使用吧。
1.添加依赖
compile 'com.readystatesoftware.systembartint:systembartint:1.0.3'
2.在基类BaseActivity中写初始化沉浸式状态栏的方法
这样所有子类Activity都能设置自己的状态栏的颜色
public class BaseActivity extends AppCompatActivity {
/**
* 设置沉浸式状态栏的方法
*/
protected void initStatusBar(int color) {
//如果想支持4.4以上版本,需要将状态栏设置成透明的才能着色。
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {//KITKAT表示是4.4版本
Window win = getWindow();
WindowManager.LayoutParams winParams = win.getAttributes();
//WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS含义为状态栏透明
winParams.flags |= WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS;
win.setAttributes(winParams);
}
SystemBarTintManager tintManager = new SystemBarTintManager(this); //着色管理器
tintManager.setStatusBarTintEnabled(true);//设置支持着色
tintManager.setStatusBarTintColor(color);//指设置颜色
}
}
3.在子类Activity中重写父类initStatusBar()方法
public class MainActivity extends BaseActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initStatusBar(Color.parseColor("#39AEFF"));//重写父类方法,修改状态栏颜色
}
}
运行效果: