android修改状态栏的颜色等问题 - Android移动开发技术文章_手机开发 - 红黑 - 龙8国际娱乐pt老虎机
频道栏目
首页 > 程序开发 > 移动开发 > Android > 正文
android修改状态栏的颜色等问题
2018-06-28 10:34:15      个评论    来源:weixin_40350174的博客  
收藏   我要投稿

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了、、、、
点击复制链接 与好友分享!回本站首页
上一篇:Android 代码格式化插件
下一篇:Android applicationId与包名的区别
相关文章
图文推荐

关于我们 | 联系我们 | 服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑--致力于做实用的IT技术学习网站

龙8国际娱乐pt老虎机