logo
publist
写文章

简介

鸿蒙技术分享,之前做过6年java、4年Android。现从事鸿蒙开发

擅长的技术栈

javaAndroidflutterframework鸿蒙

可提供的服务

暂无可提供的服务

鸿蒙5.0开发常见问题【如何获取屏幕顶部状态栏、底部导航栏和导航条的高度?】

摘要:文章介绍了如何使用ArkUI框架的window.getWindowAvoidArea方法获取系统避让区域高度。示例代码展示了获取系统默认区域(包括状态栏和导航栏)以及导航指示器区域的高度,包括状态栏高度、底部导航栏高度和导航指示器高度。通过调用getLastWindow获取窗口对象后,使用getWindowAvoidArea方法查询不同类型避让区域的矩形尺寸信息,并将结果输出到日志中。

文章图片
#harmonyos#华为#运维 +3
鸿蒙5.0开发常见问题【使用0x八位颜色设置渐变透明度为什么与#八位资源颜色值不同?】

HarmonyOS支持0x开头加八位或六位的写法。当透明度设为00时,前两位透明度不再借位,即0x00333333等于0x333333,相当于没有设置透明度,因此没有透明效果。建议使用rgba方式明确颜色。

文章图片
#harmonyos#华为#运维 +2
鸿蒙5.0开发常见问题【如何获取设备屏幕横竖屏状态?】

ArkUI框架提供了两种检测屏幕旋转状态的方法:1. 使用媒体查询监听orientation变化,通过注册change回调处理横竖屏切换事件;2. 通过getDefaultDisplaySync获取当前Display实例,读取其orientation属性判断旋转状态(0-竖屏,1-横屏,2-反向竖屏)。两种方法都能有效获取设备当前方向,但媒体查询更适合实时监听,而Display方法更适合一次性获取

文章图片
#harmonyos#华为#运维 +2
鸿蒙5.0开发常见问题【ArkUI组件能否支持继承?】

ArkUI采用声明式语法设计,组件以struct定义且不支持继承。为满足复用需求,开发者可使用attributeModifier动态属性扩展组件,部分功能已实现,其余需求将持续优化。对于需要在基类页面统一处理的业务逻辑,可通过无感监听页面生命周期的observer功能实现。这些方案为开发者提供了灵活的组件扩展和生命周期管理方式。

文章图片
#harmonyos#华为#运维 +3
鸿蒙5.0开发常见问题【Flex布局与w3c中的flex是否有差异?】

文章对比了W3C标准和ArkTS中Flex布局的差异。在W3C标准下,Flex组件主轴默认大小由子组件决定,且align-items默认值为stretch(拉伸),子组件会填满父组件;而修改align-items后,主轴大小由子组件决定。在ArkTS中,Flex组件主轴默认大小由父组件决定,总是填满父组件,且alignItems默认值为Start,设置该值后主轴大小不受影响。两种实现的主要区别在于

文章图片
#harmonyos#华为#运维 +2
鸿蒙5.0开发常见问题【@Style 和 @Extend 是否支持export导出?】

ArkUI样式复用方案迎来调整:@Styles和@Extend装饰器将停止演进,不再支持导出功能。官方推荐改为使用attributeModifier属性,通过自定义类继承基础组件的Modifier来实现样式复用,该方法无导出限制。但当前方案暂不支持事件和手势处理功能,相关开发需求已在跟进中。开发者需注意新旧方案的兼容性差异。

文章图片
#harmonyos#华为#运维 +2
鸿蒙5.0开发常见问题【ArkUI有没有在组件刷新后的回调事件?】

1.如果是组件的属性刷新,可以将属性存储为状态变量,并使用watch监听状态变量的变化。2.如果是组件大小变化,可以通过onSizeChange(),监听到组件区域的变化。当组件状态变量改变时,会刷新组件。

文章图片
#harmonyos#华为#运维 +3
鸿蒙5.0开发常见问题【如何获取状态栏和导航栏高度?】

获取系统避让区域(如状态栏/导航栏)的方法总结:通过getWindowAvoidArea获取系统规避区域,其中topRect.height即为状态栏高度(单位px)。示例代码展示了在ArkUI框架中如何调用该API,开发者可将其用于界面布局适配。 (注:摘要未包含文末宣传内容,仅聚焦技术要点)

文章图片
#harmonyos#华为#运维 +2
鸿蒙5.0开发常见问题【如何实现类似keyframes的效果?】

摘要:示例代码展示了如何使用HarmonyOS的animateTo方法实现连续动画效果。通过嵌套animateTo调用并在onFinish回调中启动新动画,可以实现分阶段的动画序列。代码中,按钮点击触发初始动画将透明度变为0.5,完成后在回调中启动第二个动画将透明度进一步变为0.2。这种技术适用于需要多个动画按顺序执行的场景,展示了一种事件驱动的动画编排方式。(149字)

文章图片
#harmonyos#华为#开发语言 +3
鸿蒙5.0开发常见问题【如何获取窗口的宽高信息?】

摘要: 在鸿蒙开发中,获取窗口宽高需注意时机选择。通过window.getWindowProperties().windowRect可获取窗口尺寸,但需避免在aboutToAppear阶段调用,因此时窗口可能未完全可见,导致数据错误。推荐在onPageShow生命周期阶段获取,确保窗口可见后获得准确宽高。代码示例展示了如何异步获取窗口对象并提取宽高信息,同时强调异常处理的重要性。鸿蒙开发需系统学习

文章图片
#harmonyos#华为#鸿蒙 +2
    共 1654 条
  • 1
  • 2
  • 3
  • 166
  • 请选择