android修改状态栏的颜色等问题,android状态栏沉浸

6
回复
625
查看
[复制链接]

329

主题

983

帖子

722

安币

手工艺人

发表于 2018-7-4 17:49:22 | 显示全部楼层 |阅读模式

        

        android修改状态栏的颜色等问题。

[Java] 查看源文件 复制代码
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文件中设置

[Java] 查看源文件 复制代码
android:fitsSystemWindows="true"

        ?fragment的话在文中,

[Java] 查看源文件 复制代码
@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中添加

[Java] 查看源文件 复制代码
android:fitsSystemWindows="true"

就ok了、、、、                                                

1

主题

9234

帖子

2912

安币

Android大神

Rank: 6Rank: 6

发表于 2018-7-4 18:14:23 | 显示全部楼层
每次我都积极回帖的,想要安币~

501

主题

1207

帖子

2041

安币

手工艺人

发表于 2018-7-4 20:28:24 | 显示全部楼层
感谢大神~
发表于 2018-7-4 22:42:48 | 显示全部楼层
不错不错,楼主辛苦了。。。

0

主题

9422

帖子

2412

安币

Android大神

Rank: 6Rank: 6

发表于 2018-7-4 23:47:06 | 显示全部楼层
安卓巴士是个不错的网站,我来顶个贴~

501

主题

1216

帖子

317

安币

手工艺人

发表于 2018-7-5 01:17:58 | 显示全部楼层
感谢大神~

28

主题

1万

帖子

1369

安币

Android大神

小白

Rank: 6Rank: 6

发表于 2018-7-5 03:10:43 | 显示全部楼层
感谢分享,楼主V5~
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

领先的中文移动开发者社区
18620764416
7*24全天服务
意见反馈:1294855032@qq.com

扫一扫关注我们

Powered by Discuz! X3.2© 2001-2019 Comsenz Inc.( 粤ICP备15117877号 )