这个星多
https://github.com/laobie/StatusBarUtil
compile 'com.jaeger.statusbarutil:library:1.5.1'
StatusBarUtil.setColor(this,getResources().getColor(R.color.colorAccent ),0 );
StatusBarUtil.setDarkMode(this);
https://github.com/yanzhenjie/Sofia
implementation 'com.yanzhenjie:sofia:1.0.5'
如果不需要超出状态栏,那最好了,如果要超出需要在Style里做修改
这样的话确实超出了,也没有黑色遮罩
提供一个方法来设置状态栏
让整体内容去超出
getWindow().addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
写一个View顶上去
findViewById(R.id.statubar).getLayoutParams().height=BarUtils.getStatusBarHeight();
重新设置它的高度.
StatusBarUtil.setTranslucent(this);
用来加上黑色遮盖 .
总的来说 就俩种办法 如果是DrawerLayout的话 那么就在Activtiy对应的Style里直接修改状态栏颜色
- @color/colorPrimary
- @color/colorPrimaryDark
也可以使用addFlag limit 然后使用View 顶上去做修改
有黑条:
Translucent
没有黑条:
Transparent
StatusBarUtil.setTransparent(this);
StatusBarUtil.setLightMode(this);
StatusBarUtil.setLightMode(this);
StatusBarUtil.setTranslucent(this, 112);
先上布局
StatusBarUtil.setTranslucentForImageView(this,122,needschange);
// StatusBarUtil.setLightMode(this);
StatusBarUtil.setDarkMode(this);
StatusBarUtil.setTransparentForImageView(this,needschange);
StatusBarUtil.setLightMode(this);