如何在Android Studio开发的App中隐藏状态栏?
Android状态栏隐藏失效的解决方法
检查主题兼容性
如果你使用的是AppCompat系列主题(如Theme.AppCompat.Light.DarkActionBar),仅设置windowFullscreen或FLAG_FULLSCREEN可能不生效。需要先移除ActionBar,再配置全屏:- 代码方式:
// 隐藏ActionBar getSupportActionBar().hide(); // 设置全屏标志 getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN); - 主题配置方式:
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> <item name="android:windowFullscreen">true</item> </style>
- 代码方式:
适配Android 11及以上版本
高版本系统需结合沉浸式标志,防止状态栏自动恢复显示:getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_FULLSCREEN | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);SYSTEM_UI_FLAG_IMMERSIVE_STICKY可让状态栏在用户滑动触发后自动重新隐藏,维持全屏状态。排查Activity配置冲突
- 检查
android:windowSoftInputMode设置,adjustResize等参数可能强制唤起状态栏,需避免此类冲突。 - 排查生命周期方法(如
onResume)中是否有代码重置了窗口标志,导致全屏设置被覆盖。
- 检查
旧版本API兼容处理
针对API 19以下的系统,可尝试以下代码:getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN); getWindow().clearFlags(WindowManager.LayoutParams.FLAG_FORCE_NOT_FULLSCREEN);
内容的提问来源于stack exchange,提问作者Samvel Hovhannisyan
相关产品推荐
相关产品推荐

