02-breakpoint-system
02 — ArkUI 自适应布局与响应式布局的断点系统详解一、引言HarmonyOS 多设备短视频项目覆盖从 1.5 英寸手表到 85 英寸智慧屏的广泛屏幕尺寸。ArkUI 提供了断点系统Breakpoint System来实现自适应和响应式布局本文深入分析其实现原理。二、断点类型定义2.1 宽度断点WidthBreakpointArkUI 提供了getWindowWidthBreakpoint()接口返回以下枚举值断点屏幕宽度范围典型设备WIDTH_XS 320vp手表WIDTH_SM320~599vp直板机WIDTH_MD600~839vp折叠屏展开态、小平板WIDTH_LG840~1439vp大平板、电脑WIDTH_XL≥ 1440vp大屏电脑、智慧屏2.2 高度断点HeightBreakpoint通过getWindowHeightBreakpoint()获取项目中主要使用HEIGHT_SM和HEIGHT_MD来区分横竖屏状态。三、WidthBreakpointType 泛型工具项目自定义了WidthBreakpointTypeT泛型类用于根据当前断点获取对应值exportclassWidthBreakpointTypeT{publicxs?:T;publicsm:T;publicmd:T;publiclg:T;publicxl:T;constructor(sm:T,md:T,lg:T,xl:T,xs?:T){...}getValue(widthBp:WidthBreakpoint):T{switch(widthBp){caseWidthBreakpoint.WIDTH_XS:returnthis.xs??this.sm;caseWidthBreakpoint.WIDTH_SM:returnthis.sm;caseWidthBreakpoint.WIDTH_MD:returnthis.md;caseWidthBreakpoint.WIDTH_LG:returnthis.lg;caseWidthBreakpoint.WIDTH_XL:returnthis.xl;default:returnthis.sm;}}}典型用法示例// 根据断点设置不同边距.padding({left:newWidthBreakpointTypenumber(16,16,32,32).getValue(this.windowInfo.widthBp),right:newWidthBreakpointTypenumber(16,16,32,32).getValue(this.windowInfo.widthBp)})// 根据断点设置不同行数.maxLines(newWidthBreakpointTypenumber(2,2,2,2,1).getValue(this.windowInfo.widthBp))// 根据断点设置不同字体大小.fontSize(newWidthBreakpointTypenumber|Resource($r(sys.float.Body_M),$r(sys.float.Body_M),$r(sys.float.Body_L),$r(sys.float.Body_L)).getValue(this.windowInfo.widthBp))四、断点监听机制4.1 系统断点监听通过WindowUtil中的onWindowSizeChange回调监听窗口尺寸变化自动更新断点publiconWindowSizeChange:(windowSize:window.Size)void(windowSize:window.Size){this.mainWindowInfo.windowSizewindowSize;this.mainWindowInfo.widthBpthis.uiContext!.getWindowWidthBreakpoint();this.mainWindowInfo.heightBpthis.uiContext!.getWindowHeightBreakpoint();};4.2 自定义断点计算项目还提供了getCustomWidthBreakpoint(width)方法用于在子组件内部根据实际宽度重新计算断点如个人作品页的 Works 网格布局getCustomWidthBreakpoint(width:number):WidthBreakpoint{if(width320)returnWidthBreakpoint.WIDTH_XS;elseif(width600)returnWidthBreakpoint.WIDTH_SM;elseif(width840)returnWidthBreakpoint.WIDTH_MD;elseif(width1440)returnWidthBreakpoint.WIDTH_LG;elsereturnWidthBreakpoint.WIDTH_XL;}五、响应式布局组合策略项目中结合多种 ArkUI 特性实现完整响应式Monitor装饰器监听windowSizeWidth和windowSizeHeight变化动态调整视频播放器尺寸Grid网格布局根据断点动态设置columnsTemplateWorks.ets中网格列数从 2 列到 6 列自适应Visibility控制根据断点显示/隐藏 UI 元素如手表上隐藏音乐播放器组件SafeArea适配expandSafeArea和ignoreLayoutSafeArea结合断点使用六、最佳实践将断点值集中管理不要散落在各处优先使用WidthBreakpointType泛型而不是逐层 if-else 判断窄屏优先设计从 XS 断点开始逐步适配高度断点与宽度断点组合使用应对横竖屏切换场景

相关新闻

2026最新6款AI编程工具免费付费深度对比

2026最新6款AI编程工具免费付费深度对比

我在一个 5 人的创业团队,技术选型没有预算试错。每个月订阅多个 AI 开发工具对我们来说成本压力不小,毕竟独立开发者和小团队的每一分预算都要花在刀刃上。这次我亲自用 6 款 AI 编程工具各跑了一个完整功能模块,从免费额度、性价比到实际开…

2026/10/8 15:09:53 阅读更多 →
Python调用AI大模型API实现高效求职文档生成

Python调用AI大模型API实现高效求职文档生成

1. 项目背景与核心价值最近在帮学弟学妹改简历时发现,90%的初版简历都存在"经历描述空洞"、"技能堆砌无重点"、"格式混乱"三大痛点。恰好我在用Python做AI文本生成实验,于是萌生了用AI辅助撰写求职文档的想法。这个实训项…

2026/10/7 13:17:15 阅读更多 →
千问最新福利券来啦!新用户输入:千问新人福利yPBm3m 就可以直接领取8元通用立减券,这是真的。快来领取吧

千问最新福利券来啦!新用户输入:千问新人福利yPBm3m 就可以直接领取8元通用立减券,这是真的。快来领取吧

小伙伴们呢,千问官方App最近都在搞活动,只要是新人注册App然后输入:千问新人福利yPBm3m 这个口令,就可以领到8元的免费的立减券,这个8元优惠券领导后直接就能绑定淘宝闪购,直接就能打车,点外卖…

2026/10/2 13:33:56 阅读更多 →

最新新闻

Windows环境下MapServer与GDAL发布包部署指南

Windows环境下MapServer与GDAL发布包部署指南

简介:这份发布包面向 Java 地理信息开发者,定位是固定版本的 GIS 开发运行环境,基于 x64 Windows,对应 GDAL 3.8.5 与 MapServer 8.0.1,可用于解析 TIFF 等栅格数据并搭建网络地图服务。包内不仅带 GDAL 的 Java 绑定与…

2026/10/12 9:21:57 阅读更多 →
MATLAB二维图像转3D:四大技术路线与实战指南

MATLAB二维图像转3D:四大技术路线与实战指南

做三维建模的人,应该都有过这种经历:手头明明有一张轮廓清晰、信息完整的二维图像,却要花上大半天在三维软件里照着描、拉曲面、调样条,最后做出来的形状还不一定满意。尤其是做产品前期验证、快速出模型给别人看的时候&#xff0…

2026/10/12 9:21:57 阅读更多 →
CATIA V6 2013安装部署实战:PLM配置与许可证调优指南

CATIA V6 2013安装部署实战:PLM配置与许可证调优指南

简介:面向航空、汽车、机械、造船等工程领域的CATIA V6 2013软件安装资源包,主要为需要部署三维设计环境的工程师、设计师及工艺人员提供下载途径与安装参考。资源共7个文件,包括用于获取完整安装程序的torrent种子、记录安装步骤与系统需求的…

2026/10/12 9:20:56 阅读更多 →
Spring AI迁移实战:从Alibaba停更到Ollama无缝切换

Spring AI迁移实战:从Alibaba停更到Ollama无缝切换

1. 这不是“Java不行了”,而是生态演进的正常快照最近在几个技术社区刷到标题为“Spring AI Alibaba已停更了,Java还有希望吗?”的讨论帖,点进去发现不少Java老开发者语气里带着一丝疲惫——有人截图了Spring AI Alibaba官方仓库最…

2026/10/12 9:20:56 阅读更多 →
C语言生产级单向链表实现与内存安全实践

C语言生产级单向链表实现与内存安全实践

1. 项目概述:为什么链表操作是程序员绕不开的“基本功”“Problem C.链表操作”——光看这个标题,你可能觉得它像一道老掉牙的算法题,出现在某次模拟赛的第三题位置,代码区里还留着几行被注释掉的调试输出。但如果你在真实项目中写…

2026/10/12 9:19:55 阅读更多 →
mold 插件系统拆解:LTO、自定义符号处理如何在链接阶段“插一脚“

mold 插件系统拆解:LTO、自定义符号处理如何在链接阶段“插一脚“

mold 插件系统拆解:LTO、自定义符号处理如何在链接阶段"插一脚" 【免费下载链接】mold mold 🦠: A Modern Linker in Rust 🦀 项目地址: https://gitcode.com/GitHub_Trending/mo/mold 链接器在大多数开发者眼里是一个"…

2026/10/12 9:19:55 阅读更多 →

日新闻

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

在数码相机、高清显示屏与现代矢量图形技术高度发达的今天,画面可以做到绝对的锐利、平滑与无瑕。然而,当一张秋日手账插画或拍立得照片过于“平整无瑕”时,往往会散发出一种冰冷生硬的“数码塑料感(Digital Plasticity&#xff0…

2026/10/12 0:00:59 阅读更多 →
活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

在现代网页与移动端设计中,横排(Horizontal Layout)早已经成为了绝对的主流。然而,当我们翻开泛黄的线装古籍、宋版木刻诗集,或是欣赏一张茶道雅集的手写便签时,那种**自上而下纵向书写、自右向左逐列铺展&…

2026/10/12 0:00:59 阅读更多 →
周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

每到周日的晚上八点到十点,很多人心里都会悄悄亮起一盏警示灯。 在心理学上,这种现象有一个专门的称谓——“周日夜晚焦虑症(Sunday Scaries)”。明天又是周一,闹钟又要重新在七点响彻卧房;脑海里仿佛有一个…

2026/10/12 0:00:59 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/12 0:16:30 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/12 0:16:43 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 10:45:37 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:53 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:54 阅读更多 →