【鸿蒙开发】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(() => {
  });
}

最终效果

相关推荐
程序员Sunday12 小时前
Flex 和 Grid 有什么区别?一维布局、二维布局怎么选?
前端·css·面试
Jlzn888812 小时前
华南PACK线自动化率怎么统计才靠谱
前端·javascript·自动化
蒿豪郝灬号12 小时前
UniApp接入鸿蒙版阿里百川
华为·uni-app·harmonyos
拖孩12 小时前
AI 时代,个人开发者到底能不能靠一个小程序赚到钱
前端·后端·微信小程序
Hilaku12 小时前
ERP选型时不问MCP,等于默认三年后再付一次集成费!
前端·javascript·程序员
程序人生88812 小时前
几百张固定位置扫描件如何离线批量清?DocConverter Web 批量去水印链路
前端
deli00712 小时前
一个汉字三种编码:UTF-8、GBK、UTF-16 逐字节对比实测
前端
庖丁解牛12 小时前
第二课:把代码保存成网页 + 认识变量 (2)
前端
代码猎人12 小时前
怎么开发一个Vue3项目
前端
梦里寻码12 小时前
从 0 到 1 用 NestJS + LangChain 搭一套可售卖的 SaaS AI 客服:挂件一行代码接入,知识库秒变 SEO 帮助中心
前端·后端·github