android修改状态栏的颜色等问题
程序员文章站
2022-05-13 22:53:39
android修改状态栏的颜色等问题。
protected boolean usethemestatusbarcolor = true;//是否使用特殊的标题栏背景颜色,android5.0以上...
android修改状态栏的颜色等问题。
protected boolean usethemestatusbarcolor = true;//是否使用特殊的标题栏背景颜色,android5.0以上可以设置状态栏背景色,如果不使用则使用透明色值 protected boolean usestatusbarcolor = false;//是否使用状态栏文字和图标为暗色,如果状态栏采用了白色系,则需要使状态栏和图标为暗色,android6.0以上可以设置 @override protected void oncreate(@nullable bundle savedinstancestate) { super.oncreate(savedinstancestate); setstatusbar(); } private void setstatusbar() { if (build.version.sdk_int >= build.version_codes.lollipop) { //5.0以上 view decorview = getwindow().getdecorview(); int option = view.system_ui_flag_layout_fullscreen //activity全屏显示,且状态栏被覆盖掉 | view.system_ui_flag_layout_stable; //system_ui_flag_layout_stable decorview.setsystemuivisibility(option); if (usethemestatusbarcolor) { getwindow().setstatusbarcolor(getresources().getcolor(r.color.white)); } else { getwindow().setstatusbarcolor(color.transparent); } } else if (build.version.sdk_int >= build.version_codes.kitkat) { //44-5.0 windowmanager.layoutparams layoutparams = getwindow().getattributes(); layoutparams.flags = (windowmanager.layoutparams.flag_translucent_status | layoutparams.flags); //状态栏透明 } if (build.version.sdk_int >= build.version_codes.m && !usestatusbarcolor) { //6.0以上设置对文字状态栏设置为黑色,因为之前5.0我们设置为白色。 getwindow().getdecorview().setsystemuivisibility(view.system_ui_flag_layout_fullscreen | view.system_ui_flag_light_status_bar); } }
上边是改变4.0到6.0的状态栏颜色。
改了之后可能会出现顶部导航栏被顶部导航栏盖住一部分的情况
activity在你的xml文件中设置
android:fitssystemwindows="true"
?fragment的话在文中,
@override public void onhiddenchanged(boolean hidden) { if (view != null) { if (hidden) { view.setfitssystemwindows(false); } else { view.setfitssystemwindows(true); } view.requestapplyinsets(); } super.onhiddenchanged(hidden); }
ok了就。、。、、、、、、
第一个默认显示的fragment可能还会出现被盖住的情况,只要在ragment所在activity所在布局的xml中添加
android:fitssystemwindows="true"就ok了、、、、