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

安卓应用设置全屏后,如何移除导航栏位置的阴影?

解决全屏模式下导航栏位置阴影问题

我之前也碰到过一模一样的问题,导航栏隐藏后留下的阴影确实挺影响全屏体验的。你可以试试以下几个方案,应该能彻底解决:

1. 补充SystemUiVisibility布局相关Flag

你目前的代码只处理了UI的隐藏,还需要添加布局延伸的Flag,让应用内容可以覆盖到系统UI原本的位置,这样阴影区域就会被你的内容填充。修改后的代码如下:

getWindow().getDecorView().setSystemUiVisibility(
    View.SYSTEM_UI_FLAG_LAYOUT_STABLE
    | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
    | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
    | View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
    | View.SYSTEM_UI_FLAG_FULLSCREEN
    | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY
);

2. 添加Window的FLAG_LAYOUT_NO_LIMITS

这个Flag会让你的窗口完全忽略系统UI的边界限制,直接延伸到屏幕的最边缘,从根源上消除阴影存在的空间:

getWindow().setFlags(
    WindowManager.LayoutParams.FLAG_FULLSCREEN
    | WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS,
    WindowManager.LayoutParams.FLAG_FULLSCREEN
    | WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS
);

3. 检查并修改主题配置(可选)

如果上面的方法还没解决问题,可能是你的Activity主题自带了窗口阴影或背景设置。可以在styles.xml中对应主题里添加以下配置:

<item name="android:windowContentOverlay">@null</item>
<item name="android:windowBackground">@android:color/transparent</item>

这会移除窗口默认的阴影层,并将窗口背景设为透明,确保全屏模式下没有多余的视觉元素。

这几个方案组合使用,基本就能彻底清除导航栏位置的阴影了,我之前用这个方法解决过好几个类似的问题,亲测有效。

内容的提问来源于stack exchange,提问作者Ahmet AY

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 06:47:51