【问题标题】:Making status bar fully transparent on Android 11+在 Android 11+ 上使状态栏完全透明
【发布时间】:2022-12-21 13:57:06
【问题描述】:
我想让应用程序状态栏完全透明。我用了WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS
它正在按照我的意愿制作 statusBar。但它也使导航栏位于我的内容之上。我用了很多方法让导航栏不变化都失败了。网上有很多答案,但没有一个有效。如何制作一个没有黑色阴影且没有navigationBar变化的全透明statusBar?
【问题讨论】:
标签:
java
android
android-studio
android-statusbar
【解决方案1】:
提出这个问题并没有得到任何人的帮助。但是几个月后,在制作另一个应用程序时,我得到了这个问题的答案,并且它只适用于我的应用程序。
getSupportActionBar().hide();
if (Build.VERSION.SDK_INT >= 21) {
Window window = getWindow();
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 >= 19) {
getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
//Virtual keyboard is also transparent
//getWindow().addFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_NAVIGATION);
}
我希望这段代码能正常工作!