在HarmonyOS NEXT开发中有没有单个页面设置全屏/非全屏,同时不影响其他页面的方案?
在HarmonyOS NEXT开发中有没有单个页面设置全屏/非全屏,同时不影响其他页面的方案?
在HarmonyOS NEXT中可以通过以下方案实现单页面全屏控制:
// 全屏设置方案
import window from '@ohos.window';
// 进入页面时设置全屏
async function enterFullScreen() {
let windowClass = await window.getLastWindow(this.context);
await windowClass.setWindowLayoutFullScreen(true); // 设置全屏布局
await windowClass.setFullScreen(true); // 设置全屏标志
}
// 退出页面时恢复默认
async function exitFullScreen() {
let windowClass = await window.getLastWindow(this.context);
await windowClass.setWindowLayoutFullScreen(false);
await windowClass.setFullScreen(false);
}
// 在页面生命周期中调用
aboutToAppear() {
enterFullScreen();
}
aboutToDisappear() {
exitFullScreen();
}
关键点说明:
window
模块的setWindowLayoutFullScreen
和setFullScreen
双方法组合需在module.json5
中添加权限声明:
"requestPermissions": [
{
"name": "ohos.permission.WRITE_USER_SETTING"
}
]
注意事项:
1 回答1.1k 阅读✓ 已解决
1 回答1.4k 阅读
1 回答1.2k 阅读
1 回答1.1k 阅读
1 回答1.1k 阅读
1 回答988 阅读
1 回答964 阅读
单页全屏设置目前可以通过pageshow的时候设置全屏,pagehide的时候取消全屏来完成。示例代码如下: