# 页面和导航条区域的色调不一致

#### 问题现象

应用未适配沉浸式显示，底部导航栏突兀。

#### 背景知识

*   窗口全屏布局方案：通过setWindowLayoutFullScreen调整布局系统为全屏布局，界面元素延伸到状态栏和导航区域实现沉浸式效果。当不隐藏避让区时，通过接口查询状态栏和导航区域进行可交互元素避让处理，并设置状态栏或导航栏的颜色等属性与界面元素匹配；当隐藏避让区时，通过对应接口设置全屏布局。
*   setSpecificSystemBarEnabled：设置主窗口状态栏、底部导航区域的显示或隐藏，使用Promise异步回调。
*   setWindowSystemBarProperties：在全屏主窗口下用于设置窗口内导航栏和状态栏的属性。
*   SystemBarProperties：包括背景颜色、文字颜色、图标是否高亮和图标动画等属性，适配可以参考如何实现状态栏背景颜色沉浸。
*   expandSafeArea：允许开发者设置组件绘制内容突破安全区域的限制。

#### 问题定位

1.  全局搜索关键字setWindowLayoutFullScreen或expandSafeArea，查看应用页面是否设置为全屏模式。该页面使用setWindowLayoutFullScreen设置为全屏模式。
    
    ```
    aboutToAppear(): void {
      window.getLastWindow(this.getUIContext().getHostContext())
        .then(win => {
          win.setWindowLayoutFullScreen(true); // 设置全屏
        })
    }
    ```
    
2.  全局搜索关键字setSpecificSystemBarEnabled，查看页面是否通过接口设置状态栏/导航栏的具体显示/隐藏状态。页面未使用setSpecificSystemBarEnabled方法对系统导航栏进行设置。
3.  全局搜索关键字setWindowSystemBarProperties，查看页面是否设置状态栏导航栏样式。页面设置为导航栏背景色为白色。页面未使用setWindowSystemBarProperties对导航栏颜色等属性进行设置。

#### 分析结论

当应用调用setWindowLayoutFullScreen接口设置窗口全屏布局时，未使用setSpecificSystemBarEnabled方法对系统导航栏进行隐藏，也未使用setWindowSystemBarProperties将导航栏颜色等属性与界面元素进行匹配。

#### 修改建议

参考沉浸式页面实现页面沉浸式适配。