【鸿蒙开发】PC实现开局沉浸式全屏

前言

本文将深入探讨鸿蒙PC如何通过沉浸式设计提升用户专注度。无论是高效办公、创意设计,还是娱乐休闲,鸿蒙PC都能通过灵活的界面调整、智能的任务管理和丰富的交互模式,让用户真正"掌控"自己的数字空间。

环境

  • DevEco Studio
  • 2in1模拟器

沉浸式实现

首先创建一个实例项目,运行在2in1设备中效果如下

实现沉浸式很简单,我们只需要调用window的maximize方法

Ts 复制代码
 // EntryAbility.ets
onWindowStageCreate(windowStage: window.WindowStage): void {
  const winClass = windowStage.getMainWindowSync();
  winClass.maximize();
  windowStage.loadContent('pages/Index').then(() => {
  });
}

这个时候我们发现,鼠标移入在上下热区上会显示显示窗口标题栏和dock栏。

如果想要去掉移入热区显示,则需要在调用maximize的时候,传入参数名称 :

参数 说明
FOLLOW_APP_IMMERSIVE_SETTING 0 最大化时,跟随应用app当前设置的沉浸式布局。元服务API: 从API version 12开始,该接口支持在元服务中使用。
EXIT_IMMERSIVE 1 最大化时,如果当前窗口设置了沉浸式布局会退出沉浸式布局。元服务API: 从API version 12开始,该接口支持在元服务中使用。
ENTER_IMMERSIVE 2 最大化时,进入沉浸式布局,鼠标Hover在热区上显示窗口标题栏和dock栏。元服务API: 从API version 12开始,该接口支持在元服务中使用。
ENTER_IMMERSIVE_DISABLE_TITLE_AND_DOCK_HOVER14+ 3 最大化时,进入沉浸式布局,鼠标Hover在热区上不显示窗口标题栏和dock栏。元服务API: 从API version 14开始,该接口支持在元服务中使用。
Ts 复制代码
onWindowStageCreate(windowStage: window.WindowStage): void {
  const winClass = windowStage.getMainWindowSync();
  winClass.maximize(window.MaximizePresentation.ENTER_IMMERSIVE_DISABLE_TITLE_AND_DOCK_HOVER);
  windowStage.loadContent('pages/Index').then(() => {
  });
}

最终效果

相关推荐
徐小夕1 分钟前
100小时,我做了一款AI CAD建模软件,开源!
前端·vue.js·github
Bigger2 分钟前
因为看不懂小棉袄的画,我写了个 AI 程序帮我“翻译”她的世界
前端·人工智能·ai编程
送鱼的老默41 分钟前
学习笔记--入门typescript直接案例开搞
前端·typescript
Prometheus41 分钟前
从 XMLHttpRequest 到 fetch、ReadableStream、SSE、EventSource:前端流式通信完整梳理
前端
光影少年1 小时前
useEffect 完整理解:依赖数组、副作用清理、模拟生命周期
前端·react.js·程序员
之歆1 小时前
DAY_18深度解析:数据类型转换与运算符全攻略(上)
前端·javascript
大家的林语冰1 小时前
pnpm 11 发布,弃用 JSON 和 npm CLI,进化为纯 ES6 模块,新增 pnpm pack-app 等命令,供应链保护默认启用,要求 Node
前端·javascript·node.js
●VON1 小时前
28个Token重构鸿蒙App:企业级设计系统的搭建实践
华为·重构·harmonyos
漓漾li1 小时前
每日面试题-前端2
前端·react.js·面试
Alice-YUE2 小时前
深入解析 JS 事件循环:浏览器与 Node.js 的差异全解析
前端·javascript·笔记·学习