背景
在實際項目中,為了軟件使用整體色調看起來統一,一般頂部和底部的顏色需要鋪滿整個手機屏幕。因此,這篇帖子是介紹設置的方法,也是應用沉浸式效果。如下圖:底部的綠色延伸到上面的狀態欄和下面的導航欄

UI
在鴻蒙應用中,全屏UI元素分為狀態欄、應用界面和導航欄。

一般實現應用沉浸式效果由兩種方式:
- 窗口全屏布局方案:調整布局系統為全屏布局,界面元素延伸到狀態欄和導航條區域實現沉浸式效果。
- 組件延伸方案:組件布局在應用界面區域,通過接口方法延伸到狀態欄和導航欄。
窗口全屏布局方案
- 新建展示頁面,并使用@StorageProp定義頁面內容的頂部偏移和底部偏移屬性
- 在EntryAbility的onWindowStageCreate方法中,調用window.Window.setWindowLayoutFullScreen方法設置窗口全屏。
- 為了避免構件被擋住,根據導航條和狀態欄的高度,修改bottomRectHeight和topRectHeight的數值。
- 再設置頁面監聽,動態修改bottomRectHeight和topRectHeight的數值。
EntryAbility完整代碼
僅需要修改onWindowStageCreate方法
組件延伸方案
使用expandSafeArea方法來實現。
- types:配置擴展安全區域的類型。SafeAreaType枚舉類型,SYSTEM是系統默認非安全區域,包括狀態欄、導航欄;CUTOUT是設備的非安全區域,例如劉海屏或挖孔屏區域;KEYBOARD是軟鍵盤區域,組件不避讓鍵盤。
- edges:擴展安全區域的方向。
代碼
通過顏色對比,可以看出組件延伸效果。
- column:背景顏色設置為橘色,從圖片可以看出只能在安全區域內顯示。
- list:背景顏色設置為黃色,從圖片可以看出已經延伸至導航條和狀態欄了。
- Text:背景顏色設置成紅色,就可以看到整個組件的滑動過程.

總結
如果不是全部界面都需要實現沉浸式布局時,可以通過組件延伸方案去實現部分組件的沉浸式布局。
浙公網安備 33010602011771號