
鸿蒙开发
文章平均质量分 75
移动开发技术栈
【每日打卡】鸿蒙开发0到1系统学习
展开
-
鸿蒙5.0开发常见问题【父组件如何与孙子组件进行状态同步?】
摘要:本文介绍了两种实现ArkUI组件间数据传递的方法。方法一使用@Provider和@Consumer装饰器,通过在父组件@Provider提供数据,孙子组件@Consumer接收,实现跨级双向绑定。方法二采用@Local和@Param装饰器,父组件用@Local绑定数据,子组件和孙子组件通过@Param逐级传递接收参数。两种方式都演示了从父组件到孙子组件的数据传递过程,并给出了完整的组件代码示例。原创 2025-06-04 22:05:42 · 37 阅读 · 0 评论 -
鸿蒙5.0开发常见问题【如何设置窗口旋转?】
步骤一:通过[getLastWindow()]、[createWindow()]、[findWindow()]中的任一方法获取到Window实例。步骤二:通过设置[setPreferredOrientation]属性来设置窗口的显示方向属性,使用callback异步回调。参数[Orientation]提供了窗口显示方向类型枚举。原创 2025-06-04 20:49:13 · 180 阅读 · 0 评论 -
鸿蒙5.0开发常见问题【如何监听屏幕旋转?】
摘要:本文介绍了使用ArkUI媒体查询接口监听屏幕旋转的方法。主要通过matchMediaSync监听横屏事件,并注册回调函数处理方向变化。代码示例展示了如何获取UIContext、创建监听器、定义回调函数以及注册/注销回调。当屏幕方向改变时,回调函数会根据matches属性执行相应操作,实现屏幕旋转的响应式处理。该方法适用于需要适配不同屏幕方向的ArkUI应用开发。原创 2025-06-04 19:33:32 · 30 阅读 · 0 评论 -
鸿蒙5.0开发常见问题【如何设置Tabs的末尾由透明到不透明的渐变效果?】
【代码】鸿蒙5.0开发常见问题【如何设置Tabs的末尾由透明到不透明的渐变效果?原创 2025-06-04 15:42:02 · 35 阅读 · 0 评论 -
鸿蒙5.0开发常见问题【Image无法使用bindContextMenu?】
Image有长按触发拖拽属性,和长按弹出菜单冲突,需要将图片的draggable属性设置为false。原创 2025-06-04 14:36:39 · 178 阅读 · 0 评论 -
鸿蒙5.0开发常见问题【Navigation的toolbar中设置大图标时被切断?】
本文介绍了如何通过scale属性调整工具栏中图片尺寸的方法。代码示例展示了一个导航栏组件,其中中间的图片通过scale({x:2,y:2})实现了2倍放大效果,而其他图片保持原始尺寸。该方法适用于需要放大显示但保持原有布局的图片场景,整个工具栏高度固定为34,背景为白色。通过layoutWeight分配空间,确保图片居中显示。原创 2025-06-04 13:37:35 · 46 阅读 · 0 评论 -
鸿蒙5.0开发常见问题【如何获取Text组件中文字的宽度?】
《使用MeasureText计算文本宽度》 摘要:在HarmonyOS开发中,可通过@ohos.measure的measureText接口计算文本宽度。示例代码展示了如何测量"Hello word"在50px字号下的单行宽度,并将结果显示在Text组件中。主要步骤包括:1)通过getMeasureUtils获取测量工具;2)设置textContent和fontSize参数;3)将测量结果绑定到State变量。该方法适用于需要精确获取文本布局尺寸的场景,为UI自适应布局提供技术支持。(10原创 2025-06-03 21:47:51 · 60 阅读 · 0 评论 -
鸿蒙5.0开发常见问题【如何去除Tabs组件两侧的蒙层?】
Tabs组件的fadingEdge属性表示页签超过容器宽度时是否渐隐消失,默认值为true,设置为false即可去除蒙层。原创 2025-06-03 20:39:56 · 206 阅读 · 0 评论 -
鸿蒙5.0开发常见问题【图片如何添加渐变模糊?】
ArkTS组件通过linearGradientBlur属性实现线性渐变模糊效果。该示例代码展示了如何为Image组件添加从底部开始、透明度分阶段变化的渐变模糊。参数包括模糊半径60和配置对象,其中fractionStops定义透明度变化节点,direction设置渐变方向为底部向上。这种效果可用于创建视觉层次或焦点引导,代码简洁明了地体现了ArkTS的声明式UI开发特点。原创 2025-06-03 19:31:23 · 85 阅读 · 0 评论 -
鸿蒙5.0开发常见问题【输入框拉起键盘时,如何将底部布局弹起到键盘顶部?】
摘要: 软键盘弹出时会遮挡输入框下方的组件。解决方案:通过获取窗口规避区域(TYPE_KEYBOARD),动态调整组件布局。代码示例展示了如何监听键盘状态,计算规避高度并设置margin-bottom顶起组件,确保内容可见。文档还提供了鸿蒙开发学习路线和资源,涵盖ArkUI、Stage模型等核心技术,助力开发者高效掌握鸿蒙生态应用开发。鸿蒙作为国产操作系统,人才需求增长迅速,系统化学习至关重要。原创 2025-06-03 17:20:30 · 381 阅读 · 0 评论 -
鸿蒙5.0开发常见问题【如何在键盘弹出时,让内容上移,而不是整个页面上移?】
本文介绍了在ArkUI开发中如何设置键盘避让模式为压缩模式。通过调用setKeyboardAvoidMode(KeyboardAvoidMode.RESIZE)接口,可实现键盘弹出时自动调整窗口布局的避让效果。代码示例展示了在Ability的onWindowStageCreate生命周期中获取UIContext对象并设置键盘避让模式的方法。该功能有助于优化移动应用在软键盘弹出时的用户体验,避免键盘遮挡输入区域的问题。原创 2025-06-03 15:53:20 · 45 阅读 · 0 评论 -
鸿蒙5.0开发常见问题【如何在自定义组件的构建流程里跟踪组件数据或者状态,如在build里增加日志跟踪状态变量等?】
使用@Watch回调来监测状态变量的变化。如果回调函数执行,说明在下一次VSync信号发送时,使用该状态变量的UI会刷新绘制。原创 2025-06-03 14:48:28 · 133 阅读 · 0 评论 -
鸿蒙5.0开发常见问题【自定义字体的注册方式是什么,如何从资源存放路径中取出字体资源?】
在工程中存放自定义字体资源文件,通过代码中的registerFont接口注册这些字体,然后在文本组件中使用fontFamily属性引用。推荐使用 $rawfile 方式引用自定义字体资源,资源应放置在 resources/rawfile 目录下。原创 2025-06-03 13:46:58 · 75 阅读 · 0 评论 -
鸿蒙5.0开发常见问题【Text 组件如何加载Unicode字符?】
在ArkUI中,Text组件支持通过转义Unicode编码显示特殊字符。示例展示了如何使用"\u{XXXX}"格式的Unicode编码显示"👨👩👧👦"家庭表情符号,其中包含了多个Unicode代码点(U+1F468、U+200D等)的组合。通过设置fontSize为50,使得表情符号清晰可见。这种方法适用于需要显示复杂表情符号或特殊Unicode字符的场景。原创 2025-05-30 22:04:18 · 118 阅读 · 0 评论 -
鸿蒙5.0开发常见问题【如何监听当前屏幕的横竖屏状态?如何实现页面跟随屏幕横竖屏自动旋转?】
应用可以使用 display.on 监听屏幕状态的变化。原创 2025-05-30 20:41:06 · 334 阅读 · 0 评论 -
鸿蒙5.0开发常见问题【如何实现手指离开屏幕后的惯性滑动效果?】
本文展示了如何使用PanGesture拖动手势结合animateTo动画实现惯性滑动效果。代码示例构建了一个可拖动文本框组件,通过PanGesture监听上下拖动事件,在onActionUpdate和onActionEnd回调中使用animateTo方法实现平滑移动效果。主要特性包括:可配置拖动方向、记录偏移位置、支持线性缓动动画以及在动作结束时提供惯性效果(通过乘以系数2)。该实现适用于需要手势交互的UI组件开发。原创 2025-05-30 19:32:18 · 101 阅读 · 0 评论 -
鸿蒙5.0开发常见问题【如何解决子组件全屏后margin不会生效的问题?】
鸿蒙开发组件约束问题解决方案 摘要:在鸿蒙开发中,父组件全屏显示时,子组件设置左右margin可能导致超出屏幕范围。可通过constraintSize属性限制子组件最大宽高,确保布局合理。示例代码展示了如何使用该属性限制Text组件宽度不超过100%,同时设置左右边距50vp。文中还提供了完整的鸿蒙开发学习资料索引,包含核心技术点与学习路线图(共1236页手册+视频),覆盖ArkTS、分布式开发等全栈内容,助力开发者系统掌握鸿蒙技术。原创 2025-05-30 17:03:36 · 409 阅读 · 0 评论 -
鸿蒙5.0开发常见问题【如何实现类似插槽的功能?】
ArkUI框架提供@Builder和@BuilderParam两种装饰器实现UI复用机制。@Builder用于封装可复用的UI组件,遵循build()语法规则;@BuilderParam则用于声明UI占位变量,支持在组件初始化时动态注入@Builder方法。通过代码示例展示了父组件向子组件传递Builder函数的过程,父组件定义Text构建器,子组件通过@BuilderParam接收并渲染该构建内容。这种机制类似slot插槽,为ArkUI提供了灵活的UI复用能力。原创 2025-05-30 15:55:32 · 102 阅读 · 0 评论 -
鸿蒙5.0开发常见问题【如何获取UI组件的显示或隐藏状态?】
本文介绍了两种在鸿蒙开发中控制组件显示状态的方法:1)通过if条件渲染和@Watch变量监听组件显隐状态;2)利用aboutToAppear()和aboutToDisappear()生命周期方法感知组件显示状态。示例代码演示了如何实现这两种方式。文章还提到鸿蒙开发需要系统学习ArkTS、ArkUI等核心技术,并提供包含1236页开发手册和视频教程的学习资料。随着鸿蒙生态快速发展,预计将产生大量鸿蒙开发岗位需求,掌握鸿蒙开发技术具有重要前景。原创 2025-05-30 14:36:33 · 228 阅读 · 0 评论 -
鸿蒙5.0开发常见问题【如何设置分组列表的圆角和间距?】
本文展示了如何使用ArkUI的ListItemGroup组件创建带圆角的分组列表,并设置列表间距。示例代码通过ListItemGroupStyle.CARD设置分组圆角效果,使用List的space参数控制项目间距为20vp。构建了一个课程表列表,每组包含不同科目,每个列表项设置统一样式(白色背景、居中文字)。列表占屏幕90%宽度,关闭滚动条,同时支持顶部和底部粘性效果。整体布局采用灰色背景,上下保留5vp内边距。原创 2025-05-30 13:34:10 · 108 阅读 · 0 评论 -
鸿蒙5.0开发常见问题【List组件如何实现多列效果?】
文章摘要: 通过在ArkUI框架下的List组件设置lanes属性,可以实现交叉轴上的多列布局效果。示例代码展示了一个包含9个元素的列表,通过设置.lanes(3)将列表项分为3列显示,并利用.alignListItem(ListItemAlign.Center)实现居中对齐。每个列表项通过Row和Text组件构建,添加了红色40号字体和黑色边框样式。这种布局方式特别适合需要横向展示多列数据的场景,能够有效利用屏幕空间,提升界面展示效率。原创 2025-05-29 21:49:03 · 208 阅读 · 0 评论 -
鸿蒙5.0开发常见问题【如何解决List组件在不设置高度的情况下滑动不到底的问题?】
当List组件中的子项数量较多时,如果同级存在其他组件,会下压List组件,导致显示异常。原创 2025-05-29 20:48:02 · 327 阅读 · 0 评论 -
鸿蒙5.0开发常见问题【如何实现分组列表的吸顶/吸底效果?】
本文介绍了如何在HarmonyOS中使用List组件的sticky属性配合ListItemGroup实现分组列表的粘性效果。通过设置sticky(StickyStyle.Header | StickyStyle.Footer)可使组头和组尾在滚动时保持固定。文章提供了完整的代码示例,展示了一个包含星期课程表的分组列表实现,其中每个ListItemGroup包含标题头和项目数量尾注。该技术可应用于需要分组展示且保持组标题可见的场景,如课程表、通讯录等。同时文章还介绍了系统性的鸿蒙开发学习路径和资源,包括Ark原创 2025-05-29 19:30:27 · 314 阅读 · 0 评论 -
鸿蒙5.0开发常见问题【如何加载和使用自定义字体?】
【摘要】本文介绍了鸿蒙系统中注册自定义字体并应用的示例代码。通过registerFont()方法注册"Condensed_Black"和"Condensed_Black_Italic"两种字体,并在Text组件中调用fontFamily()实现不同字体样式。文章还提供了鸿蒙开发学习资源推荐,包括技术文档和视频教程,涵盖ArkTS、分布式开发等核心技术点。针对开发者转型鸿蒙的需求,特别整理了1236页开发手册及系统学习路线图,包含南北向开发环境搭建和实战案例。随着鸿蒙生原创 2025-05-29 17:00:08 · 366 阅读 · 0 评论 -
鸿蒙5.0开发常见问题【如何主动清除控件的焦点?】
当组件处于获焦状态时,将其focusable属性或enabled属性设置为false,会自动使该组件失焦。焦点将按照[走焦规则]转移给其他组件。原创 2025-05-29 15:57:39 · 82 阅读 · 0 评论 -
鸿蒙5.0开发常见问题【如何解决两层Tabs出现滑动冲突的情况?】
通过给外层Tabs设置scrollable(false)实现两层Tabs嵌套底部导航+顶部导航的组合原创 2025-05-29 14:52:25 · 362 阅读 · 0 评论 -
鸿蒙5.0开发常见问题【如何解决Web与List的嵌套滑动冲突?】
本文介绍了如何在ArkUI框架中解决Web组件与List组件的滑动冲突问题。通过使用hitTestBehavior属性设置为HitTestMode.Block,可以阻断触摸事件向父容器传递,确保Web组件内的滑动操作不会被List拦截。示例代码展示了两个Web组件嵌入List中的实现方式,其中一个通过hitTestBehavior处理滑动冲突,另一个未处理作为对比。该方法简单有效地解决了混合使用Web视图和列表时的交互冲突问题。原创 2025-05-29 13:39:50 · 75 阅读 · 0 评论 -
鸿蒙5.0开发常见问题【如何实现Tabs页签导航栏切换时,下划线也随之滑动?】
很多开发朋友不知道需要学习那些鸿蒙技术?鸿蒙开发岗位需要掌握那些核心技术点?为此鸿蒙的开发学习必须要系统性的进行。而网上有关鸿蒙的开发资料非常的少,假如你想学好鸿蒙的应用开发与系统底层开发。你可以参考这份资料,少走很多弯路,节省没必要的麻烦。由两位前阿里高级研发工程师联合打造的《鸿蒙NEXT星河版OpenHarmony开发文档》里面内容包含了(原创 2025-05-28 21:55:06 · 305 阅读 · 0 评论 -
鸿蒙5.0开发常见问题【如何实现软键盘弹出后,整体布局不变?】
通过[expandSafeArea]属性把组件扩展其安全区域,使页面整体布局保持不变,当type为SafeAreaType.KEYBOARD时默认生效,组件不避让键盘原创 2025-05-28 20:49:57 · 230 阅读 · 0 评论 -
鸿蒙5.0开发常见问题【RichEditor组件如何设置光标的起始位置位于左上角?】
摘要:通过RichEditor组件的align属性传入Alignment.TopStart参数,可以将富文本编辑器的光标初始位置设置在左上角。示例代码展示了如何在ArkUI中使用RichEditorController创建富文本编辑器,并通过align(Alignment.TopStart)实现光标定位,同时设置了编辑器的边框、尺寸等样式属性。原创 2025-05-28 19:31:27 · 111 阅读 · 0 评论 -
鸿蒙5.0开发常见问题【TextInput组件获取焦点的几种场景?】
本文介绍了鸿蒙开发中TextInput组件的四种焦点控制场景:1)通过focusControl.requestFocus()主动转移焦点至指定组件;2)使用defaultFocus属性设置默认获焦组件;3)结合defaultFocus和enableKeyboardOnFocus实现获焦但不弹出键盘;4)默认状态下TextInput不自动获焦。文档还提供了完整的鸿蒙学习路线,包含ArkTS、多端部署、分布式开发等核心技术,并附带1236页开发手册及实战教程,帮助开发者系统掌握鸿蒙应用与系统开发。随着鸿蒙生态快原创 2025-05-28 16:57:07 · 248 阅读 · 0 评论 -
鸿蒙5.0开发常见问题【如何在Navigation跳转页面时返回传参?】
本文展示了在ArkUI框架中使用导航栈(NavPathStack)实现页面跳转的代码示例。主要包含三个组件:Index作为入口页面,MyFirstNavDestination和MySecondNavDestination作为目标页面。代码演示了如何通过@Provide和@Consume共享导航栈,使用pushPathByName进行页面跳转并传递参数,以及处理返回按钮事件时对导航栈的操作。特别指出参数类型不支持传递JS对象如Map等,只能使用简单对象。文中还包含了获取参数、页面展示回调等实用功能的实现方法。原创 2025-05-28 15:56:10 · 107 阅读 · 0 评论 -
鸿蒙5.0开发常见问题【如何给UI组件设置不同情况下的属性?】
摘要:本文介绍了在鸿蒙开发中如何通过if/else条件语句动态设置组件属性值。示例代码展示了使用@State声明响应式变量,通过三元表达式控制Text组件高度的变化,以及两种切换布尔状态的方法(if/else和取反操作)。文章最后指出鸿蒙作为国产操作系统的发展潜力,并提供了包含ArkTS、ArkUI等核心技术的完整学习资料(1236页文档+视频),适合Android/Java开发者转型学习。资料涵盖从基础到实战的完整鸿蒙开发知识体系。原创 2025-05-28 14:53:06 · 405 阅读 · 0 评论 -
鸿蒙5.0开发常见问题【如何自定义Tabs页签导航栏及其对齐方式?】
本文介绍了如何自定义页签及其对齐方式,主要通过代码示例展示了实现方法。核心要点包括: 使用@Builder构建自定义页签组件Tab,包含文本和图标 通过Scroll组件实现水平滚动页签 设置justifyContent和align控制页签对齐方式 使用Tabs组件管理内容页,并与页签联动 通过controller.changeIndex实现页签切换功能 用backgroundColor区分选中和未选中状态 支持横向滚动且隐藏滚动条 这段代码完整展示了自定义页签的开发和布局对齐控制的全过程。原创 2025-05-28 13:46:25 · 108 阅读 · 0 评论 -
鸿蒙5.0开发常见问题【如何在长按手势回调方法里获取手指触摸点的坐标?】
使用[组合手势]的顺序识别,当长按手势事件结束后触发拖动手势事件。在手势回调方法里获取event([GestureEvent]类型)的fingerList([FingerInfo[]]类型),获取到localX和localY数值,表示相对于当前组件元素原始区域左上角的坐标地址。原创 2025-05-27 21:39:32 · 105 阅读 · 0 评论 -
鸿蒙5.0开发常见问题【如何实现防截屏功能?】
设置窗口隐私模式,禁止截屏或录屏。此接口适用于禁止截屏/录屏的场景。原创 2025-05-27 20:37:31 · 594 阅读 · 0 评论 -
鸿蒙5.0开发常见问题【如何解决应用运行时OH_JSVM_CreateVM多线程创建发生竞争,导致VM内部的成员变量内存异常应用退出问题?】
摘要: 分析崩溃日志显示,v8引擎在分配外部存储时因array_buffer_allocator为空引发空指针异常,推测多线程并发调用OH_JSVMD_CreateVM导致竞争条件。解决方案为对VM创建过程加锁(如使用std::mutex),确保线程安全。此外,文档提供鸿蒙开发系统性学习资源(含ArkTS、分布式开发等核心技术),帮助开发者掌握鸿蒙生态技术栈。原创 2025-05-27 19:32:16 · 707 阅读 · 0 评论 -
鸿蒙5.0开发常见问题【如何解决Finalizer方法中执行JS代码崩溃问题?】
JSVM崩溃分析显示,Finalizer方法中直接调用JS代码导致系统崩溃。调用栈显示Finalizer通过OH_JSVM_CallFunction执行JS代码触发了V8引擎的致命错误。解决方案要求Finalizer仅执行资源清理,禁止调用JSVM API。如需在对象销毁后执行JS代码,应将相关调用加入事件队列延迟执行,确保在正确时机异步处理。这遵循了V8引擎对Finalizer的限制要求,避免直接JS调用引发的崩溃问题。原创 2025-05-27 16:46:44 · 72 阅读 · 0 评论 -
鸿蒙5.0开发常见问题【如何正确使用OH_JSVM_GetValueStringUtf8获取字符串?】
本文针对OH_JSVM_GetValueStringUtf8函数使用时可能导致的崩溃问题,提出了分三步获取字符串的解决方案:首先获取字符串长度,然后申请适当大小的内存空间,最后获取字符串内容。文章强调了申请缓冲区时需要包含终止字符的空间,并建议避免直接在栈上分配大内存以防栈溢出。最后介绍了系统性学习鸿蒙开发的技术要点和资源,包括ArkTS、分布式开发等核心技术,以及完整的学习路线图和开发文档,帮助开发者快速掌握鸿蒙开发技能,把握鸿蒙生态快速发展的机遇。原创 2025-05-27 15:41:29 · 236 阅读 · 0 评论 -
鸿蒙5.0开发常见问题【如何自排查OOM(v8::FatalProcessOutOfMemory)错误?】
摘要:当应用内存达到V8上限时会出现OOM崩溃,可扩大内存参数max-semi-space-size和max-old-space-size解决。默认值分别为16MB和1400MB。若仍崩溃需排查内存泄漏。鸿蒙开发学习资料包含系统教程、实战手册及技术文档,涵盖ArkTS、Stage模型等核心技术。鸿蒙作为国产操作系统发展迅速,相关人才需求将大幅增长。原创 2025-05-27 14:40:14 · 925 阅读 · 0 评论