You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Android Studio中移除顶部刘海栏且不删除ActionBar

解决方案(不删除ActionBar处理刘海栏异常问题)

你遇到的是安卓系统状态栏(即你提到的刘海栏)显示配置异常问题,不需要删除ActionBar即可修复,以下是不同开发场景的操作步骤:

场景1:原生View体系开发

  • 第一步:修改App主题配置,在res/values/themes.xml中找到你的应用使用的主题节点,添加如下配置:
<!-- 允许内容延伸到刘海区域 -->
<item name="android:windowLayoutInDisplayCutoutMode">shortEdges</item>
<!-- 状态栏设置为透明 -->
<item name="android:statusBarColor">@android:color/transparent</item>
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
  • 第二步:在对应Activity的onCreate方法setContentView执行前添加窗口配置:
// Kotlin 代码
window.addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS)
window.clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS)
// Java 代码
getWindow().addFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);
getWindow().clearFlags(WindowManager.LayoutParams.FLAG_TRANSLUCENT_STATUS);
  • 第三步:给布局根节点添加android:fitsSystemWindows="true"属性,即可保证ActionBar不会被刘海区域遮挡。

场景2:Jetpack Compose 开发

  • 第一步:Activity的窗口配置和上述View体系的配置保持一致
  • 第二步:在setContent代码块中添加如下逻辑隐藏状态栏:
val systemUiController = rememberSystemUiController()
SideEffect {
    // 隐藏状态栏,同时保留导航栏正常显示
    systemUiController.isStatusBarVisible = false
    systemUiController.isNavigationBarVisible = true
}
  • 第三步:正常使用TopAppBar组件即可,不需要额外修改ActionBar相关配置,内容会自动从刘海区域下方开始渲染。

如果你不需要完全隐藏状态栏,只是想解决白色背景看不到通知图标的问题,仅把statusBarColor设置为和ActionBar相同的颜色即可,系统会自动把通知图标切换为和背景反差的配色,不需要隐藏状态栏。

内容的提问来源于stack exchange,提问作者ROHITH SPEAKS

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 23:36:04