应用挂起或退出时，页面顶部闪现白条
=================

#### 问题现象

应用挂起或退出时，应用页面的上方出现白色区域。

![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/6/v3/MbB7nbUYSLe2-FT-sALQng/zh-cn_image_0000002628769750.png?HW-CC-KV=V1&HW-CC-Date=20260709T134022Z&HW-CC-Expire=86400&HW-CC-Sign=2885D558A48B45C750967F86E9771599F62C4E093A314FA093EC2A4142F85140 "点击放大")

#### 背景知识

*   [setWindowLayoutFullScreen](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/arkts-apis-window-window#setwindowlayoutfullscreen9)：设置主窗口或子窗口的布局是否为沉浸式布局，使用Promise异步回调。系统窗口调用不生效。
*   [expandSafeArea](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-universal-attributes-expand-safe-area#expandsafearea)：控制组件扩展其安全区域。

#### 问题定位

*   排查代码中是否调用setWindowLayoutFullScreen(true)，如果没有设置沉浸式布局，只调用[setWindowSystemBarProperties](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/arkts-apis-window-window#setwindowsystembarproperties9)方法设置窗口内状态栏来实现沉浸式效果，会导致应用在挂起或退出时，上方闪现白条。
    
    import { window } from '@kit.ArkUI';
    
    @Entry
    @Component
    struct ErrorPage {
    
      aboutToAppear(): void {
        window.getLastWindow(this.getUIContext().getHostContext(), (err, windowClass) => {
          windowClass.setWindowLayoutFullScreen(false);
          windowClass.setWindowSystemBarProperties({
            statusBarColor: '#4d000000',  _// 状态栏颜色_
            statusBarContentColor: '#000'
          });
        });
      }
      build() {
        Column()
          .width('100%')
          .height('100%')
          .backgroundColor('#4d000000')
          .expandSafeArea(\[SafeAreaType.SYSTEM\], \[SafeAreaEdge.BOTTOM\])
      }
    }
    
*   查看页面组件是否配置expandSafeArea属性，没有设置会导致应用挂起或退出时，上方闪现白条。如果有配置expandSafeArea，需要参照[expandSafeArea](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-universal-attributes-expand-safe-area#expandsafearea)文档中的说明部分排查是否生效。

#### 分析结论

*   仅通过setWindowSystemBarProperties方法实现沉浸式效果，未使用setWindowLayoutFullScreen方法，导致应用挂起或退出时，顶部闪现白条。
*   组件的expandSafeArea属性未设置或不生效，导致应用挂起或退出时，顶部闪现白条。

#### 修改建议

*   在进入页面或启动应用时调用[setWindowLayoutFullScreen](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/arkts-apis-window-window#setwindowlayoutfullscreen9)方法，传入参数值true，启用沉浸式布局。
    
    代码如下：
    
    import { window } from '@kit.ArkUI';
    
    @Entry
    @Component
    struct FullScreenTest {
    
      aboutToAppear(): void {
        window.getLastWindow(this.getUIContext().getHostContext(), (err, windowClass) => {
          windowClass.setWindowLayoutFullScreen(true);
        });
      }
      build() {
        Column()
          .width('100%')
          .height('100%')
          .backgroundColor('#f1f3f5')
      }
    }
    
    效果如下：
    
    ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/e7/v3/bOuymxDiTRSaMtwf2Z8MzA/zh-cn_image_0000002658969071.png?HW-CC-KV=V1&HW-CC-Date=20260709T134022Z&HW-CC-Expire=86400&HW-CC-Sign=B930C63D37390BE596ECB778272C958CB47D6872809D288F0DF67DE3FABC3DC9 "点击放大")
    
*   页面中的组件配置[expandSafeArea](https://developer.huawei.com/consumer/cn/doc/harmonyos-references/ts-universal-attributes-expand-safe-area#expandsafearea)属性，确保expandSafeArea属性生效，扩展组件的安全区域到状态栏。
    
    代码如下：
    
    @Entry
    @Component
    struct SafeAreaTest {
    
      build() {
        Column()
          .height('100%')
          .width('100%')
          .backgroundColor('#f1f3f5')
          .expandSafeArea(\[SafeAreaType.SYSTEM\], \[SafeAreaEdge.TOP, SafeAreaEdge.BOTTOM\])
      }
    }
    
    效果如下：
    
    ![](https://contentcenter-vali-drcn.dbankcdn.cn/pvt_2/DeveloperAlliance_scene_100_1/c0/v3/EAdDBpZ4RhG_sW8LXyblLw/zh-cn_image_0000002658849117.png?HW-CC-KV=V1&HW-CC-Date=20260709T134022Z&HW-CC-Expire=86400&HW-CC-Sign=F13F9B375CD31451CBB024039C61458B3B52C4207BEC1BD351A22DC868733ECF "点击放大")