当前位置: 首页 > news >正文

鸿蒙Next学习解析之针对PC2in1设备的窗口管理新增支持主窗的尺寸记忆功能

概述

鸿蒙开发者官方文档更新速度很快,不一会就更新到17版本了,在鸿蒙 Next 的最新API17中,针对 PC 和 2in1 设备的窗口管理功能得到了显著增强。新增的主窗尺寸记忆功能使得应用能够记住窗口的大小和位置,从而在下次启动时恢复到之前的设置。这对于提升用户体验和应用的便捷性具有重要意义。

设置是否启用主窗的尺寸记忆功能,使用Promise异步回调,仅对2in1设备生效。在同一个UIAbility下, 可记忆最后关闭的主窗口尺寸,也可针对每个主窗口尺寸单独进行记忆。只有在UIAbility启动模式为specified,且isSaveBySpecifiedFlag设置为true时,才能针对每个主窗口尺寸进行单独记忆。

启用记忆功能后,记忆主窗口关闭时的尺寸;对应主窗口再次启动时,以记忆的尺寸按照规则进行打开

主窗尺寸记忆功能

主窗尺寸记忆功能允许开发者设置是否自动保存和恢复窗口的尺寸和位置。通过简单的 API 调用,开发者可以轻松实现这一功能。

API 介绍

相关 API 为 setWindowRectAutoSave,其作用是设置是否自动保存当前应用主窗的尺寸和位置。

使用方法

以下是一个简单的示例,展示如何在应用中启用主窗尺寸记忆功能:

// EntryAbility.ets
import { UIAbility } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';export default class EntryAbility extends UIAbility {// ...onWindowStageCreate(windowStage: window.WindowStage): void {console.info('onWindowStageCreate');try {let promise = windowStage.setWindowRectAutoSave(true, true);promise.then(() => {console.info('Succeeded in setting window rect auto-save');}).catch((err: BusinessError) => {console.error(`Failed to set window rect auto-save. Cause code: ${err.code}, message: ${err.message}`);});} catch (exception) {console.error(`Failed to set window rect auto-save. Cause code: ${exception.code}, message: ${exception.message}`);}}
}

参数说明

  • enabled: 布尔值,表示是否自动保存窗口的尺寸和位置。设置是否启用主窗的尺寸记忆功能,true为启用,false为不启用。
    -isSaveBySpecifiedFlag :布尔值 设置specified模式下是否启用对窗口进行单独记忆,true为启用,false为不启用。

应用场景

主窗尺寸记忆功能适用于需要持久化窗口状态的应用场景,例如:

  • 桌面应用:用户可以根据自己的喜好调整窗口大小和位置,应用在下次启动时自动恢复到之前的设置。
  • 多任务处理:在多任务环境下,用户可以将应用窗口调整到特定位置,方便与其他应用协同工作。

注意事项

  • 权限要求:使用此功能可能需要特定的权限,请确保在应用的配置文件中声明相关权限。
  • 兼容性:此功能可能仅在特定版本的鸿蒙系统上可用,请确保您的设备和系统版本支持该功能。

总结

通过新增的主窗尺寸记忆功能,鸿蒙 Next 为开发者提供了一种简单而有效的方法来提升用户体验。开发者可以轻松地在应用中实现窗口状态的持久化,从而让用户在使用过程中感受到更加便捷和个性化的体验。希望本文的介绍能帮助您更好地理解和使用这一功能。


希望这篇文章能对您有所帮助!如果您需要进一步的信息或有其他问题,欢迎随时提问。

概述

鸿蒙开发者官方文档更新速度很快,不一会就更新到17版本了,在鸿蒙 Next 的最新API17中,针对 PC 和 2in1 设备的窗口管理功能得到了显著增强。新增的主窗尺寸记忆功能使得应用能够记住窗口的大小和位置,从而在下次启动时恢复到之前的设置。这对于提升用户体验和应用的便捷性具有重要意义。

设置是否启用主窗的尺寸记忆功能,使用Promise异步回调,仅对2in1设备生效。在同一个UIAbility下, 可记忆最后关闭的主窗口尺寸,也可针对每个主窗口尺寸单独进行记忆。只有在UIAbility启动模式为specified,且isSaveBySpecifiedFlag设置为true时,才能针对每个主窗口尺寸进行单独记忆。

启用记忆功能后,记忆主窗口关闭时的尺寸;对应主窗口再次启动时,以记忆的尺寸按照规则进行打开

主窗尺寸记忆功能

主窗尺寸记忆功能允许开发者设置是否自动保存和恢复窗口的尺寸和位置。通过简单的 API 调用,开发者可以轻松实现这一功能。

API 介绍

相关 API 为 setWindowRectAutoSave,其作用是设置是否自动保存当前应用主窗的尺寸和位置。

使用方法

以下是一个简单的示例,展示如何在应用中启用主窗尺寸记忆功能:

// EntryAbility.ets
import { UIAbility } from '@kit.AbilityKit';
import { BusinessError } from '@kit.BasicServicesKit';export default class EntryAbility extends UIAbility {// ...onWindowStageCreate(windowStage: window.WindowStage): void {console.info('onWindowStageCreate');try {let promise = windowStage.setWindowRectAutoSave(true, true);promise.then(() => {console.info('Succeeded in setting window rect auto-save');}).catch((err: BusinessError) => {console.error(`Failed to set window rect auto-save. Cause code: ${err.code}, message: ${err.message}`);});} catch (exception) {console.error(`Failed to set window rect auto-save. Cause code: ${exception.code}, message: ${exception.message}`);}}
}

参数说明

  • enabled: 布尔值,表示是否自动保存窗口的尺寸和位置。设置是否启用主窗的尺寸记忆功能,true为启用,false为不启用。
    -isSaveBySpecifiedFlag :布尔值 设置specified模式下是否启用对窗口进行单独记忆,true为启用,false为不启用。

应用场景

主窗尺寸记忆功能适用于需要持久化窗口状态的应用场景,例如:

  • 桌面应用:用户可以根据自己的喜好调整窗口大小和位置,应用在下次启动时自动恢复到之前的设置。
  • 多任务处理:在多任务环境下,用户可以将应用窗口调整到特定位置,方便与其他应用协同工作。

注意事项

  • 权限要求:使用此功能可能需要特定的权限,请确保在应用的配置文件中声明相关权限。
  • 兼容性:此功能可能仅在特定版本的鸿蒙系统上可用,请确保您的设备和系统版本支持该功能。

总结

通过新增的主窗尺寸记忆功能,鸿蒙 Next 为开发者提供了一种简单而有效的方法来提升用户体验。开发者可以轻松地在应用中实现窗口状态的持久化,从而让用户在使用过程中感受到更加便捷和个性化的体验。希望本文的介绍能帮助您更好地理解和使用这一功能。


希望这篇文章能对您有所帮助!如果您需要进一步的信息或有其他问题,欢迎随时提问。

http://www.dtcms.com/a/593493.html

相关文章:

  • 【大数据技术02】统计学和模型
  • Python数据挖掘之回归
  • 数据管理技术发展的3个阶段
  • 进网站后台显示空白购买东西网站怎么做
  • 做网站的公司都有哪些模板制作方法
  • .NET线程池ThreadPool.QueueUserWorkItem
  • Python爬虫进阶:面向对象设计与反爬策略实战
  • 河北省建设厅网站站长万网主体新增网站备案需要是滴么
  • windows 11 系统 nvm安装详细教程 (踩坑分享)
  • VMMap 学习笔记(8.3):VMMap 窗口全解析——内存类型、指标含义、颜色视图怎么读
  • 西安网站建设开发公司怎么样1688网
  • 南京做网站品牌2018 84号建设厅网站
  • 整体设计 全面梳理复盘 之29 Transformer 九宫格三层架构 Designer 全部功能定稿(初稿)
  • 再看软考与职称及软考的价值
  • pycharm连接远程服务器
  • libstdc++.so.6 version `GLIBCXX_3.4.29‘ not found
  • STM32 ADC底层原理与寄存器配置详解
  • 互联科技行业网站wordpress+纯净主题
  • 短剧广告联盟APP盈利模式分析:B 端合作商如何通过系统实现收益增长
  • 「腾讯云NoSQL」技术之向量数据库篇:自研分布式向量数据库,实现毫秒级时序一致备份的挑战和实践
  • seo站长助手网站设计师加油站
  • 基于Springboot的游戏后台管理系统a803t(程序、源码、数据库、调试部署方案及开发环境)系统界面展示及获取方式置于文档末尾,可供参考。
  • springboot在线课堂教学辅助系统07741
  • 成都网站制作中国互联国家企业信用信息公示系统山东
  • C++ 哈希
  • Rust编程问题修复:如何解决“no method named partition_at_mut found”错误
  • OrangePi(运行 Ubuntu 22.04)安装 ROS 2 Humble
  • Vue3:详解toRef
  • Nvm 实现vue版本切换
  • Jenkins配置vue前端项目(最简单的操作)