半透明状态栏 Miui 设备
Translucent Status Bar Miui devices
我想在设备运行 MIUI 上将状态栏设置为半透明。我找不到解决这个问题的方法。
我试过这样做:
activity.window.setFlags(WindowManager.LayoutParams.FLAG_TRANSLCUENT_STATUS, WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS)
同样,当我想删除半透明状态栏时
activity.window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS)
它适用于大多数设备(我还没有尝试过所有设备)但它不适用于 MIUI 设备。我已经在小米红米 Note 4 运行 Android 7.0 (Nougat) 上试过了。透明状态栏正常,半透明状态栏不行
在 Android M 及更高版本上,您可以使用以下代码获得带有深色图标的透明状态
window.statusBarColor = ContextCompat.getColor(this, android.R.color.transparent)
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS)
window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS)
window.decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_LAYOUT_STABLE or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN or View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR
或者,如果您需要带有白色图标的透明状态,只需从最后一行删除 LIGHT_STATUS_BAR 标志
要使其在您必须做的所有设备上运行:
fun setTranslucent(activity : Activity){
activity.window.statusBarColor = 0x66000000
}
fun clearTranslucent(activity : Activity){
activity.window.statusBarColor = Color.TRANSPARENT
}
此代码也适用于 运行 MIUI 设备。我不知道为什么标志不起作用,可能是因为 MIUI 设备以某种奇怪的方式绘制状态栏。如果你知道为什么我会很高兴听到它:)
我想在设备运行 MIUI 上将状态栏设置为半透明。我找不到解决这个问题的方法。
我试过这样做:
activity.window.setFlags(WindowManager.LayoutParams.FLAG_TRANSLCUENT_STATUS, WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS)
同样,当我想删除半透明状态栏时
activity.window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS)
它适用于大多数设备(我还没有尝试过所有设备)但它不适用于 MIUI 设备。我已经在小米红米 Note 4 运行 Android 7.0 (Nougat) 上试过了。透明状态栏正常,半透明状态栏不行
在 Android M 及更高版本上,您可以使用以下代码获得带有深色图标的透明状态
window.statusBarColor = ContextCompat.getColor(this, android.R.color.transparent)
window.addFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS)
window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS)
window.decorView.systemUiVisibility = View.SYSTEM_UI_FLAG_LAYOUT_STABLE or View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN or View.SYSTEM_UI_FLAG_LIGHT_STATUS_BAR
或者,如果您需要带有白色图标的透明状态,只需从最后一行删除 LIGHT_STATUS_BAR 标志
要使其在您必须做的所有设备上运行:
fun setTranslucent(activity : Activity){
activity.window.statusBarColor = 0x66000000
}
fun clearTranslucent(activity : Activity){
activity.window.statusBarColor = Color.TRANSPARENT
}
此代码也适用于 运行 MIUI 设备。我不知道为什么标志不起作用,可能是因为 MIUI 设备以某种奇怪的方式绘制状态栏。如果你知道为什么我会很高兴听到它:)