根据OkGo的demo找到的。项目地址https://github.com/jeasonlzy有些时候需要设置状态栏的属性我们通过BaseActivity中书写该方法然后在子类中重写translucentStatusBar()方法就好了。/** 子类可以重写决定是否使用透明状态栏 */PRotected boolean translucentStatusBar() { return false;}/** 设置状态栏颜色 */ protected void initSystemBarTint() { Window window = getWindow(); if (translucentStatusBar()) { // 设置状态栏全透明 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLipOP) { window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); window.getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN | View.SYSTEM_UI_FLAG_LAYOUT_STABLE); window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); window.setStatusBarColor(Color.TRANSPARENT); } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); } return; } // 沉浸式状态栏 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) { //5.0以上使用原生方法 window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS); window.setStatusBarColor(setStatusBarColor()); } else if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { //4.4-5.0使用三方工具类,有些4.4的手机有问题,不使用沉浸式// getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS); SystemBarTintManager tintManager = new SystemBarTintManager(this); tintManager.setStatusBarTintEnabled(true); tintManager.setStatusBarTintColor(setStatusBarColor()); } }给自己做一个笔记。
新闻热点
疑难解答