logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

HarmonyOS 阔折叠响应式适配实战 —— 别识别机型,去测容器

Pura X Max 这类「阔折叠」来了:外屏比普通直板机更宽更短,内屏一展开就进入大屏布局范围。很多团队的第一反应是「加一个 if PuraXMax 分支」「读取物理屏幕尺寸」「监听 orientation」。这些做法在第一台设备上能跑,但横屏、分屏、自由窗口、未来新形态一起涌来时就会全面崩溃。

文章图片
#harmonyos#ArkUI#Pura X Max
鸿蒙编辑器框架的传输引擎:与平台剪贴板解耦的多格式复制粘贴

复制粘贴是编辑器里最被低估的功能——它同时是内容的出口和入口,牵扯三个各自独立的问题:格式(剪贴板里存什么,外部应用读得懂吗)、身份(粘贴出来的块用什么 ID)、平台(怎么跟 @ohos.pasteboard 和它的权限模型打交道)。ADR-0004 的答案是先把前两个问题在框架层解决干净,再把第三个问题压缩成一个"薄壳"适配器。

文章图片
#harmonyos#编辑器#华为 +1
鸿蒙编辑器框架的传输引擎:与平台剪贴板解耦的多格式复制粘贴

复制粘贴是编辑器里最被低估的功能——它同时是内容的出口和入口,牵扯三个各自独立的问题:格式(剪贴板里存什么,外部应用读得懂吗)、身份(粘贴出来的块用什么 ID)、平台(怎么跟 @ohos.pasteboard 和它的权限模型打交道)。ADR-0004 的答案是先把前两个问题在框架层解决干净,再把第三个问题压缩成一个"薄壳"适配器。

文章图片
#harmonyos#编辑器#华为 +1
鸿蒙编辑器框架的 RichEditor 集成:真机才教会我们的文本同步

编辑器里永远有两份文本真相:引擎 Block 模型里的那份,和屏幕 RichEditor 缓冲里的那份。让它们在打字、拆分、合并、撤销的每一步都保持一致,是鸿蒙编辑器工程最凶险的一英里——凶险到很多问题只存在于真机上:Undo 连按好几下没反应、然后一次性删光所有文字;按个 Enter,整页文本凭空消失。

文章图片
#harmonyos#编辑器#数据结构
鸿蒙编辑器框架的 RichEditor 集成:真机才教会我们的文本同步

编辑器里永远有两份文本真相:引擎 Block 模型里的那份,和屏幕 RichEditor 缓冲里的那份。让它们在打字、拆分、合并、撤销的每一步都保持一致,是鸿蒙编辑器工程最凶险的一英里——凶险到很多问题只存在于真机上:Undo 连按好几下没反应、然后一次性删光所有文字;按个 Enter,整页文本凭空消失。

文章图片
#harmonyos#编辑器#数据结构
鸿蒙编辑器框架的渲染层:注册表分发、局部刷新与 ForEach 的坑

编辑器渲染的黄金法则是"只更新受影响的块"——但把这条法则落到 ArkUI 上,你会撞上一堵写满警告的墙:ForEach 的 key 怎么写、@Prop 什么时候不可靠、@Builder 为什么不能跨文件。

文章图片
#harmonyos#编辑器#华为 +1
鸿蒙编辑器框架的渲染层:注册表分发、局部刷新与 ForEach 的坑

编辑器渲染的黄金法则是"只更新受影响的块"——但把这条法则落到 ArkUI 上,你会撞上一堵写满警告的墙:ForEach 的 key 怎么写、@Prop 什么时候不可靠、@Builder 为什么不能跨文件。

文章图片
#harmonyos#编辑器#华为 +1
鸿蒙编辑器框架的属性引擎:声明元数据,UI 自动生成

每个块插件都有用户可编辑的属性——图片的宽高布局、卡片的尺寸变体、Callout 的语义类型。在属性引擎之前,接入一个插件要在 UI 层、路由层、控制器层各写一份几乎相同的代码,插件数量线性增长,重复代码同步增长。

文章图片
#编辑器#ui#harmonyos +1
鸿蒙编辑器框架的属性引擎:声明元数据,UI 自动生成

每个块插件都有用户可编辑的属性——图片的宽高布局、卡片的尺寸变体、Callout 的语义类型。在属性引擎之前,接入一个插件要在 UI 层、路由层、控制器层各写一份几乎相同的代码,插件数量线性增长,重复代码同步增长。

文章图片
#编辑器#ui#harmonyos +1
鸿蒙编辑器框架的插件 SDK:官方插件与第三方走同一条路

框架的扩展性有两种死法:一种是让插件改内核(改着改着内核就不是内核了),另一种是给官方功能留后门(官方走快捷通道,SDK 沦为装饰)。ArkBlocks 给自己立了一条狠规矩——官方块类型逐个迁出内核、强制走插件通道,迁移本身就是对 SDK 的验收测试:官方插件过不了 SDK 这条路,修的是 SDK,不是开后门。

文章图片
#harmonyos#编辑器#华为 +2
    共 379 条
  • 1
  • 2
  • 3
  • 38
  • 请选择