记录几段常用的与状态栏有关的代码,备做不时之需。
实现沉浸式状态栏,kotlin代码:
fun steepStatusBar() {
var release=android.os.Build.MODEL
if (release!=null){
if (release.contains("HUAWEI")){
var window = window
window.addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS)
}
}
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
//5.x开始需要把颜色设置透明,否则导航栏会呈现系统默认的浅灰色
var window = window
var decorView = window.decorView
//两个 flag 要结合使用,表示让应用的主体内容占用系统状态栏的空间
var option = View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
decorView.systemUiVisibility = option
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS)
window.statusBarColor = Color.TRANSPARENT
} else {
var window = window
var attributes = window.attributes
var flagTranslucentStatus = WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS
var flagTranslucentNavigation = WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION
attributes.flags = flagTranslucentStatus
attributes.flags = flagTranslucentNavigation
window.attributes = attributes
}
}
}
动态设置隐藏或显示状态栏,kotlin代码:
window.addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN) //隐藏状态栏
// window.clearFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN) //显示状态栏