2024-12-18 16:00:50

如何锁定设备竖屏,使得窗口不随屏幕旋转

采用窗口的setPreferredOrientation方法可以实现该效果,将orientation参数设置为window.Orientation.PORTRAIT时,可锁定屏幕为竖屏。参考代码如下: import { BusinessError } from '@kit.BasicServicesKit'; import { window } from ..

OpenHarmony
232
0
2024-12-18 16:00:17

如何获取设备屏幕横竖屏状态

方法一:通过媒体查询 import { mediaquery } from '@kit.ArkUI'; let listener = mediaquery.matchMediaSync('(orientation: landscape)'); //监听横屏事件 function onPortrait(mediaQueryResult: mediaquery...

OpenHarmony
274
0
2024-12-18 15:58:44

如何实现跨文件组件复用

在应用开发中,我们通常需要使用相同功能和样式的ArkUI组件,例如购物页面中会使用相同样式的Button按钮、Text显示文字,我们常用的方法是抽取公共样式或者封装成一个自定义组件到公共组件库中以减少冗余代码。 当需要适用于多个原生组件结合的场景,如Image+Text等复合自定义组件时,推荐使用跨文件组件复用方案。 具体实现可参考如下步骤: 1.提供方在公..

OpenHarmony
228
0
2024-12-18 15:58:05

如何完成挖孔屏的适配

通过setWindowLayoutFullScreen、setWindowSystemBarEnable将窗口设置为全屏,并且隐藏顶部状态栏。 onWindowStageCreate(windowStage: window.WindowStage): void { AppStorage.setOrCreate('context', windowStage)..

OpenHarmony
277
0
2024-12-18 15:56:34

如何在Page中获取WindowStage实例

方式一:在onWindowStageCreate方法中获取 import { UIAbility } from '@kit.AbilityKit'; import { hilog } from '@kit.PerformanceAnalysisKit'; import { window } from '@kit.ArkUI'; export default..

OpenHarmony
312
0
2024-12-18 15:55:31

List控件加载的数据如何判断是否超过一屏

通过行高计算 @Entry @Component struct AllListItemHeight { private itemHeightArr = [100, 150, 200, 130, 120, 110.130]; private listHeight = 700; scroller = new ListScroller(); build() { ..

OpenHarmony
280
0
2024-12-18 15:54:02

如何解决Text组件文本为内容中文、数字、英文混合时显示省略号截断异常

文本截断是按字截断。例如,英文以单词为最小单位进行截断,若需要以字母为单位进行截断,可在字母间添加零宽空格:\u200B。 从API version 11开始,建议优先组合wordBreak属性设置为WordBreak.BREAK_ALL方式实现字母为单位进行截断,示例代码如下: @Entry @Component struct TextMixExcept..

OpenHarmony
264
0
2024-12-18 15:53:17

如何获取状态管理框架代理前的原始对象

使用getTarget接口获取状态管理框架代理前的原始对象。 参考示例如下: import { UIUtils } from '@kit.ArkUI'; @Observed class Info { name: string = 'Tom'; } @Entry @Component struct GetTargetDemo { @State info: I..

OpenHarmony
261
0
2024-12-18 15:53:00

从0到1上架一个元服务的全流程

鉴于现在官网对于发布元服务的整体流程没有一个很好的讲解,正好要上架一个元服务,所以就整理了一下相关的全流程,供大家参考。 整体流程主要分为如下几步: 1.创建项目 2.AppGallery处理 3.开发工作 4.编译打包 5.发布 接下来开始操作。 一、创建元服务项目 元服务项目的创建,跟普通鸿蒙项目的创建整体上略微有点差异,下面细说 1.DevEcoStu..

HarmonyOS NEXT
327
0
2024-12-18 15:52:45

Button组件无法设置字体最大、最小值

Button组件的labelStyle可以设置Button组件label文本和字体的样式。示例代码如下: @Entry @Component struct ButtonSetTheMaximumAndMinimumFontSizes { @State text: string = 'hello'; @State widthShortSize: number..

OpenHarmony
217
0
2024-12-18 15:51:04

如何实现折叠屏折叠态不适配旋转,展示态适配旋转

在module.json5添加属性"orientation": "unspecified"。 // module.json5 { "module": { ... , "abilities": [ { "name": "EntryAbility", ..., "orientation":"unspecified" // 未定义方向模式,由系统判定 } ] }..

OpenHarmony
332
0
2024-12-18 15:49:22

UI布局默认是多少vp

不管屏幕分辨率是多少,屏幕密度是多少,组件在视觉上呈现的效果是一致的。 vp具体计算公式为:vp= px/(DPI/160) px就是屏幕真实物理像素值,densityPixels是屏幕密度,是和标准DPI的比例,常见取值有0.75,1.0,1.5,2.0,3.0等,在HarmonyOS中,标准DPI为160,以华为mate 40 pro为例,查询得到的de..

OpenHarmony
231
0
2024-12-18 15:48:32

如何设置窗口旋转

步骤一:通过getLastWindow()、createWindow()、findWindow()中的任一方法获取到Window实例。 步骤二:通过设置setPreferredOrientation属性来设置窗口的显示方向属性,使用callback异步回调。参数Orientation提供了窗口显示方向类型枚举。 在EntryAbility.ets中的onWi..

OpenHarmony
246
0
2024-12-18 15:47:36

PX、 VP、 FP 、LPX、Percentage、Resource 详细区别是什么

屏幕像素单位:px,屏幕上的实际像素:1px代表手机屏幕上的一个像素点。 视窗逻辑像素单位:lpx,视窗逻辑像素单位,lpx单位为实际屏幕宽度与逻辑宽度(通过designWidth配置)的比值,designWidth默认值为720。当designWidth为720时,在实际宽度为1440物理像素的屏幕上,1lpx为2px大小。 虚拟像素单位:vp,屏幕密度相..

OpenHarmony
321
0
2024-12-18 15:45:50

实现瀑布流

使用LazyForEach进行数据懒加载,要求数据源实现IDataSource接口及成员方法。使用常量waterFlowData完成瀑布流数据项配置,包含图片资源、商品名称、折扣、售价等内容。 瀑布流效果实现步骤如下: 在生命周期函数aboutToAppear()中初始化瀑布流数据。 WaterFlow容器添加参数footer设置瀑布流滑动至尾部时展示的内容..

OpenHarmony
256
0
2024-12-18 15:44:27

如何加载和使用自定义字体

OpenHarmony
292
0
2024-12-18 15:43:13

TextInput组件获取焦点的几种场景

场景一:TextInput主动获取焦点。 调用focusControl.requestFocus接口可以主动让焦点转移至参数指定的组件上。可参考如下代码: // xxx.ets @Entry @Component struct TextInputExample { build() { Row() { Column() { Button('第二个获取焦点')..

OpenHarmony
289
0
2024-12-18 15:42:07

如何在长按手势回调方法里获取手指触摸点的坐标

使用组合手势的顺序识别,当长按手势事件结束后触发拖动手势事件。在手势回调方法里获取event(GestureEvent类型)的fingerList(FingerInfo[]类型),获取到localX和localY数值,表示相对于当前组件元素原始区域左上角的坐标地址。可参考如下代码 import { promptAction } from '@kit.ArkU..

OpenHarmony
240
0
2024-12-18 15:41:33

如何实现防截屏功能

setWindowPrivacyMode设置窗口是否为隐私模式,设置为隐私模式的窗口,窗口内容将无法被截屏或录屏。此接口可用于禁止截屏/录屏的场景。 方式一:在onWindowStageCreate回调中设置主窗口为隐私模式,具体可参考示例代码: import { window } from '@kit.ArkUI'; import { BusinessEr..

OpenHarmony
294
0
2024-12-18 15:37:05

HarmonyOS NEXT应用开发指南:开屏广告的使用

在开发HarmonyOS NEXT应用时,开屏广告是一个常见的功能模块。尽管它相对简单,但对初次接触的开发者来说,可能还是感到有些陌生。主要原因是它需要新增几个跳转页面,在一个页面中完成广告的请求,然后路由到另外一个页面来展示半屏或全屏广告。 今天,我们将详细讲解如何在HarmonyOS NEXT中实现这一功能,特别是针对全屏广告的展示以及如何在广告关闭后跳..

HarmonyOS NEXT
380
0
2024-12-18 15:36:28

OpenHarmony: 优化import依赖树较大的问题

一、引言 在OpenHarmony ArkTS 开发过程中,时常会遇到 import 依赖树过大的情况,这不仅可能导致项目编译时间变长,还会增加应用的初始加载负担,影响用户体验。 二、动态 import 方法原理 ArkCompiler 具备对动态 import 方法的支持,这一特性允许我们在运行时阶段动态加载模块。其核心原理在于,动态 import 接收一..

OpenHarmony
243
0
2024-12-18 15:33:33

HarmonyOS Next应用开发实战:ArkWeb使用介绍及使用举例

ArkWeb简介 ArkWeb(方舟Web)是HarmonyOS Next中提供的一个Web组件,主要用于在应用程序中显示Web页面内容。这个组件使得开发者可以在HarmonyOS应用中嵌入Web页面,从而降低开发成本,提升开发和运营效率。 使用场景 ArkWeb的常见使用场景包括: 应用集成Web页面:在应用内部页面中使用Web组件嵌入Web页面内容,这对..

HarmonyOS NEXT
294
0
2024-12-18 15:33:18

OpenHarmony: 如何查询应用包的信息

一、引言 在OpenHarmony应用开发中,我们常常需要获取应用包的一些关键信息,比如名称、供应商、版本号、版本文本、安装时间以及更新时间描述信息等。今天,介绍一下如何通过 bundleManager.getBundleInfoForSelf() 接口获取这些重要信息。 二、使用 bundleManager.getBundleInfoForSelf() 接..

OpenHarmony
309
0
2024-12-18 15:30:18

OpenHarmony: 如何通过路由跳转到一个只有页面没有UIAbility的模块

鸿蒙开发中跳转到无 UIAbility 模块页面的实用指南 一、引言 在OpenHarmony应用开发过程中,我们常常会遇到模块架构多样化的情况,比如存在一些模块只有页面却没有 UIAbility 的情况。那如何在整个应用只想使用一个 UIAbility 的前提下,实现从有 UIAbility 的模块跳转到这类特殊模块的页面? 二、模块类型相关基础知识 (一..

OpenHarmony
413
0
2024-12-18 15:24:11

OpenHarmony: 如何设置不保留最近任务列表中的快照

在OpenHarmony应用开发中,Ability 的 terminateSelf()方法用于结束当前 UIAbility 实例。但有时我们不希望应用在最近任务列表中保留快照,该如何操作呢? 其实很简单,只需在 module.json5 配置文件中进行设置。在“abilities”下对应的 UIAbility 配置里,将“removeMissionAfter..

OpenHarmony
271
0
2024-12-18 15:20:56

OpenHarmony: 如何主动退出整个应用

在鸿蒙应用开发过程中,有时会面临需要主动退出整个应用的场景。比如,当应用完成特定任务流程后,或者在某些特定条件下需要彻底关闭应用以释放系统资源等情况。 OpenHarmony提供了一个方法,那就是通过 ApplicationContext 的 killAllProcesses()方法。 当调用 ApplicationContext 的 killAllProc..

OpenHarmony
356
0
2024-12-18 15:16:33

OpenHarmony: 如何使用AbilityStage的生命周期函数

一、引言 在OpenHarmony里,深入理解和灵活运用各个组件的生命周期函数至关重要,而 AbilityStage 的生命周期函数就是其中关键的一环。它能够帮助我们在应用不同阶段执行特定的操作,实现更为精细化的应用管理和功能控制。今天,讲解下如何使用 AbilityStage 的生命周期函数。 二、手动创建 AbilityStage 文件 (一)创建目录 ..

OpenHarmony
266
0
2024-12-18 15:11:22

OpenHarmony: 如何实现跨模块的页面跳转功能

在OpenHarmony开发中,当业务体系庞大复杂时,常常会将业务拆分为多个子业务模块(单个子业务模块为一个 har/hsp)。这时,从主业务入口跳转到不同子页面模块,或者从一个子业务模块 A 页面跳转到另一个子业务模块 B 页面就成了常见需求,比如从应用首页跳转到登录子业务模块页面。以下将介绍三种实现跨模块页面跳转的解决方案。 一、方案一:router.p..

OpenHarmony
379
0
2024-12-18 15:09:33

OpenHarmony: 如何获取当前HAP的BundleName

一、引言 在OpenHarmony应用开发的过程中,经常会有获取当前 HAP(HarmonyOS Ability Package)的 BundleName 的需求。今天就来给大家详细介绍一下,如何通过 bundleManager 模块来获取当前 HAP 的 BundleName。 二、bundleManager 模块的相关接口 (一)getBundleInf..

OpenHarmony
356
0
2024-12-18 15:06:15

OpenHarmony: 跨模块访问 HSP/HAR 包资源

一、引言 在OpenHarmony应用开发过程中,常常涉及到多个模块协同工作,尤其是当使用 HSP和 HAR包时,n那么如何跨模块访问其 resources 目录下的各种资源文件,如 element 目录、media 目录以及 rawfile 目录中的资源呢。 二、通过 createModuleContext 接口访问资源 在OpenHarmony开发框架中..

OpenHarmony
389
0