文档管理中心
我的
推荐
最热
最新
其他
已解决
未解决
自定义相机页(类似微信拍摄:拍照、录像、切换前后摄、点击屏幕对焦、捏合缩放),我们做了一个完整的 Camera Kit 开发链路。但是在预览的时候出现了问题,发现预览的帧率明显的比系统相机低且卡,有时候拍照要等 1-2 秒才出片,这种性能问题有什么优化手段呢。

评论0

浏览 2

发布于3分钟前
声音不能从车里出来,从手机里出来,说是蓝牙与hicar互相冲突,媒体音频打不开

评论1

浏览 15

发布于39分钟前
按进入退出做初始化,可以吗

评论3

浏览 18

发布于昨天23:57
Nova12、13、14Mate60、70这个月有希望吗 都好久了 不会等到10月吧

评论127

浏览 6k

发布于2026-08-12 23:09
用应用级存储来管理,可以吗

评论3

浏览 19

发布于昨天23:55
分布式软总线 RPC 的sendRequest超时后,对端其实已经执行完写操作,调用方收到超时会不会导致业务层重复重试造成幂等失控,框架层给不给执行确认回执?

评论8

浏览 71

发布于昨天15:33
各位大佬好,鸿蒙应用在上架审核时,在提交应用截图竖版时,都需要注意哪些内容,有哪些细节需要特别注意?感谢!!!

评论7

浏览 32

发布于昨天14:46
如何实现组件边缘的折射效果 背景纯透明 仅边缘折射效果 并且可以根据背景的变化实时进行预览的效果 这种相果 也就是苹果的液态玻璃效果 如何在鸿蒙当中使用arkui去实现液态玻璃的效果 能否完全复刻苹果的液态玻璃效果

评论57

浏览 1.3k

发布于2026-09-05 02:57
云云
|
采纳答复
点赞7
回复于2026-09-10 06:57
ohpm的monorepoworkspace 模式下,HAP/HSP/HAR 互相引用时用workspace:*和发版版本号混用,构建图谱里 hoist 到哪一层,运行时 ArkTS 模块注册表会不会出现同包双实例?

评论4

浏览 22

发布于昨天13:49
大文件备份走C++网络栈,弱网经常TCP重传导致整体变慢,怎样在原生侧做连接复用、分片MD5、失败分片重传,以及在从WiFi切到移动网络时保留已上传偏移,避免从头再传几GB并触发系统流量保护限流?

评论8

浏览 64

发布于昨天11:23
目前使用官方模板做沉浸光感特效页签,使用迷你栏对应接口关闭右侧迷你栏展开,但是点击的时候偶尔还是会让左侧页签栏收缩,如何解决?

评论3

浏览 44

发布于昨天11:16
我在本地做websocket开发,想验证一下两边聊天是否正常,我可以在本地运行程序的时候,启动最少两个模拟器,像图片中的两个,在本地启动模拟器测试的时候,把他们都启动起来,功能都正常,并且可以访问后端服务等

评论7

浏览 58

发布于昨天09:45
问题描述:设备环境:MatePad Edge 平板,HarmonyOS 7.0.0.111 (SP8) 系统。问题现象:今天下午在 DevEco Studio 26.0.0 Beta 中更新 DevEco Code,下载完成后执行安装时提示"安装失败",失败原因为"由于网络原因,DevEco Code 安装失败,请调整网络后再次尝试"。补充说明:平板当前同时连接手机热点和另一台手机的移动网络共享,经测试常规网络访问均正常,排除基础网络不通的可能。求助:希望各位大佬帮忙分析可能的原因及解决方案,急求,感谢!

评论6

浏览 42

发布于昨天09:22
我在做一个带网络请求和音频播放的页面,最近被两个“卡住但不报错”的问题折腾得够呛。单独看每个问题都有一些零散结论,但放在一起总觉得底层是同一个毛病:异步链路的状态没有统一收口,回调各走各的,超时和恢复就互相打架。第一个是网络请求。 App 在后台时手机从 WiFi 切到 5G,再切回前台发请求,请求一直 pending,既不抛异常也不走 onError。我设了 connectTimeout: 10000,但实际等了三十多秒都没进 catch。后来看官方问答才明白,connectTimeout 不是整次请求的总超时,切网后旧连接可能还挂在旧的 socket 或连接池上,建连超时根本管不到后面的读写阶段。有回答建议监听网络变化后主动 destroy 在途请求、重建连接,再用 Promise.race 加一层业务总超时兜底,同时维护一个“网络 generation”,旧 generation 的回调直接丢弃。我现在的困惑是,这套方案落到实际代码里应该收敛在哪一层?是在统一的请求封装层里做 generation 和总超时,还是每个业务模块自己判断?如果封装层做了 Promise.race,那 httpRequest.destroy() 的时机怎么和超时对齐,才能既不让旧请求继续占资源,又不会把新请求误杀?另外,长连接(比如 WebSocket)切网时是不是也应该走同一套“全量断连重建”的逻辑,而不是让每个连接各自处理?第二个是音频播放。 AVPlayer 播网络音频,正常播放没问题,但用户一拖动进度条 seek,就经常卡在 buffering 回不来,有时候还黑屏。我一开始在 avPlayer.on('play') 里清 loading,结果 seek 后 on('play') 根本不按预期触发。官方答复里说得很直接:on('play') 不是状态机事件,不能反映完整播放器状态;seek() 完成后会触发 seekDone,但播放器状态不会自动变回 playing,需要根据当前状态决定是否继续播放。所以我现在要自己维护“seek 前是否在播放”“seek 是否完成”“当前是否在缓冲”这几组状态,但组合起来很容易漏。比如用户在暂停状态下 seek,就不该自动恢复播放;如果快速连续拖动,前一次的 seekDone 回来时可能已经过期,不能盲目 play()。官方示例里用了一个 seekTargetTime 和 wasPlayingBeforeSeek 来跟踪,但实际业务里还有弱网超时、用户松手后只提交最后一次 seek 之类的边界,感觉比示例复杂不少。我隐约觉得,网络请求和播放器这两个问题共享同一个模式:底层事件不是“命令完成”的信号,而是“某个阶段发生了变化”,应用层必须自己把命令、阶段和超时收敛到一个状态机里。但具体到代码结构,是应该各写各的,还是抽一个统一的“异步命令管理器”来同时管 HTTP 和播放器?如果抽出来,会不会又把简单问题搞复杂?

评论5

浏览 38

发布于昨天08:53
设备/环境:SGT-AL10 · HarmonyOS 7.0.0.105 · API 26 · DevEco Studio(hms SDK,UIDesignKit 声明 6.1.0(23)/6.1.1(24));应用 metadata 已配置 ohos.arkui.UIMaterial.state = "enable";targetAPIVersion ≥ 26;entry 模块;系统设置"沉浸光感" = 强(最高档)。问题现象:底部导航(悬浮胶囊 + 独立圆形)由普通 ArkUI 组件(Stack/Row)通过 systemMaterial(new uiMaterial.ImmersiveMaterial(...)) 接入沉浸式系统材质。HarmonyOS 7.0.0.105 SP6 系统更新之前:胶囊呈现真实玻璃质感(折射/光晕/通透)。SP6 更新之后:同一代码、同一设备、未改任何配置——胶囊变成纯透明的卡片(背后内容直接透出,无任何材质滤镜/折射/高光;看起来就像完全没有材质)。已按官方文档验证:按"沉浸光感"官方指南示例 1 的写法复刻(Column/Stack + .backgroundColor(Color.Transparent) 写在 .systemMaterial(...) 之前 + borderRadius + 顺序正确),同样失效。按"通用组件封装"实践(ImmersiveSurface:独立组件 + BuilderParam 内容 + 透明背景 + borderRadius + clip(true) + systemMaterial 最后),同样失效。运行时探针证据(关键):deviceInfo.apiAvailable('26.0.0') = true;uiMaterial.getMaterialInfo().state = 1(≠ DISABLE)→ 应用侧门全过;new uiMaterial.ImmersiveMaterial({ style: REGULAR, materialColor: '#80FF0000', interactive: true, lightEffect: {color: undefined} }) 传入 systemMaterial 后,50% 红色 materialColor 在画面上零差异(胶囊未变粉)——证明材质滤镜完全未被渲染(不是"样式选错/背景遮挡"类问题)。对照:同一设备上,系统组件的表面(如音乐条、系统设置预览)沉浸光感正常;HDS HdsTabs 官方悬浮页签(barFloatingStyle.systemMaterialEffect,materialType/materialLevel 模式)玻璃材质正常——唯独第三方应用里自定义 ArkUI 节点的 systemMaterial 不渲染。求助点:自定义 ArkUI 组件(Stack/Row/Column 等普通容器)的 systemMaterial 在 7.0.0.105(SP6) 是否被限制/降级?是否已有已知问题或需要新的启用条件?应用侧如何判定设备的沉浸光感算力档位(低/中/高)与全局材质等级?官方指南示例 5 提到 uiMaterial.getGlobalMaterialLevel() / uiMaterial.isImmersiveMaterialSupported(),但当前 SDK 的 ArkTS 声明中不存在这两个 API(能力清单 ArkUI.json 中有声明,since 26.0.0)——这是声明回退还是需要更高 SDK 补丁?如果自定义组件的材质确实无法恢复,官方推荐的自定义底部导航正确载体是什么(HDS 已确认可用,但存在自定义页签内容/动画限制)?代码片段(完整:普通 ArkUI 组件 + 沉浸光感)以下 = 生产组件中"普通 ArkUI 组件 + 材质接入"的完整相关代码(约 120 行)。 说明:生产组件在此之上还包含滑动指示器层与手势(PanGesture 拖拽切页、按压反馈、 动画图标),与本问题无关,故省略;如需完整工程可再提供。import { uiMaterial } from '@kit.ArkUI'; import { deviceInfo } from '@kit.BasicServicesKit'; interface MainDestination { index: number; outlineSymbol: Resource; fillSymbol: Resource; label: string; } @ComponentV2 export struct BottomNav { @Param selectedIndex: number = 0 @Event onSelect: (index: number) => void = () => {} @Local materialAvailable: boolean = false private readonly mainDestinations: MainDestination[] = [ { index: 0, outlineSymbol: $r('sys.symbol.message'), fillSymbol: $r('sys.symbol.message_fill'), label: 'Chat' }, { index: 1, outlineSymbol: $r('sys.symbol.person_crop_circle_fill_1'), fillSymbol: $r('sys.symbol.person_crop_circle_fill_1'), label: 'Contacts' }, { index: 2, outlineSymbol: $r('sys.symbol.gearshape'), fillSymbol: $r('sys.symbol.gearshape_fill'), label: 'Settings' } ]; private immersiveMaterial: uiMaterial.ImmersiveMaterial | undefined = undefined; aboutToAppear(): void { try { this.materialAvailable = deviceInfo.apiAvailable('26.0.0'); if (this.materialAvailable) { const info = uiMaterial.getMaterialInfo(); this.materialAvailable = info.state !== uiMaterial.MaterialState.DISABLE; } this.immersiveMaterial = this.materialAvailable ? new uiMaterial.ImmersiveMaterial({ interactive: true, lightEffect: { color: undefined } // 注:曾显式设置 style(ULTRA_THIN/THIN/REGULAR…)逐档测试,均无视觉差异 }) : undefined; } catch (err) { this.materialAvailable = false; this.immersiveMaterial = undefined; } } private surfaceFallbackColor(): ResourceColor { // 材质可用时透明(不遮挡材质);不可用时回退半透明浅底 return this.materialAvailable ? Color.Transparent : $r('sys.color.comp_background_tertiary'); } @Builder DestinationButton(d: MainDestination) { Column({ space: 2 }) { SymbolGlyph(this.selectedIndex === d.index ? d.fillSymbol : d.outlineSymbol) .fontSize(22) .fontColor([this.selectedIndex === d.index ? $r('sys.color.icon_emphasize') : $r('sys.color.icon_primary')]) Text(d.label) .fontSize(10) .fontColor(this.selectedIndex === d.index ? $r('sys.color.icon_emphasize') : $r('sys.color.icon_primary')) } .justifyContent(FlexAlign.Center) .layoutWeight(1) .height('100%') .backgroundColor(Color.Transparent) .onClick(() => { this.onSelect(d.index); }) .accessibilityGroup(true) .accessibilityText(d.label) .accessibilitySelected(this.selectedIndex === d.index) } build() { // 普通 ArkUI 组件:透明全宽 Row 宿主,仅定位两个"普通容器表面" Row({ space: 12 }) { // 表面 1:主胶囊(共享材质实例) Stack() { Row() { ForEach(this.mainDestinations, (d: MainDestination) => { this.DestinationButton(d) }, (d: MainDestination) => `${d.index}`) } .width('100%') .height('100%') } .layoutWeight(1) .height(56) // 普通容器 + 普通属性 .borderRadius(28) .clip(true) .shadow({ radius: 24, color: 'rgba(0,0,0,0.16)', offsetX: 0, offsetY: 6 }) .backgroundColor(this.surfaceFallbackColor()) // ← 写在 systemMaterial 之前(官方顺序) .systemMaterial(this.immersiveMaterial!) // ← 通用属性接入沉浸式系统材质 // 表面 2:独立圆形(同一材质实例) Stack() { Stack() { Text('A').fontSize(22).fontWeight(FontWeight.Medium).fontColor(Color.White) } .alignContent(Alignment.Center) .width(44) .height(44) .borderRadius(22) .backgroundColor('#0A59F7') } .alignContent(Alignment.Center) .width(56) .height(56) .borderRadius(28) .clip(true) .shadow({ radius: 24, color: 'rgba(0,0,0,0.16)', offsetX: 0, offsetY: 6 }) .backgroundColor(this.surfaceFallbackColor()) .systemMaterial(this.immersiveMaterial!) .onClick(() => { this.onSelect(3); }) .accessibilityGroup(true) .accessibilityText('Profile') } .width('100%') .padding({ left: 20, right: 20 }) .margin({ bottom: this.systemInsetVp() + 8 }) // 底部安全区留白 .backgroundColor(Color.Transparent) .hitTestBehavior(HitTestMode.Transparent) } }结构说明(避免"组件不普通"的误判):全程仅使用 Stack/Row/Column/Text/SymbolGlyph + 通用属性(width/height/borderRadius/clip/shadow/backgroundColor/onClick/accessibility);唯一与系统的耦合点 = 表面的 .backgroundColor(Color.Transparent) 与 .systemMaterial(...);两个表面共享一个 uiMaterial.ImmersiveMaterial 实例(aboutToAppear 中创建)。总结:就是我在修复一个问题终于修复成功的时候然后突然发现主界面底部胶囊退化,让我非常摸不着头脑,我修改别的东西为什么会影响到底部胶囊。想来想去,唯一怀疑的线索也只有昨天下午进行的一次系统更新。

评论34

浏览 1.2k

发布于2026-08-30 02:06
半本前瞻
|
技术支持
点赞1
回复于2026-08-31 01:24
最近在做一个信息流页面加表单弹窗的模块,被两个问题缠了快一周,单独搜都能搜到零散结论,但放到一起就不知道怎么收口了。先说列表这边。 首页数据量几千条,从 ForEach 全量渲染换成 LazyForEach 之后,首屏卡死是解决了,但快速滑动仍然会短暂白块,部分区域要过半秒才刷出来。我加了 cachedCount(5),也给自定义 Item 上了 @Reusable,结果白块没彻底消失,往下滚再滚回来,卡片的文字、图片甚至点击态会变成别的 item 的内容。去掉 @Reusable 数据就不串了,但滑动又变卡,等于两头堵。看了一些官方问答,大概知道几个方向:cachedCount 主要缓解白块,但调大不是没有代价的;@Reusable 组件从复用池取出来时走的是 aboutToReuse 而不是 aboutToAppear,旧状态不会自动清;另外列表项的高度/宽度如果不明确,也可能影响懒加载的预期行为。但我现在的问题是,不知道应该先把哪条线拆开验证。比如 aboutToReuse 里到底要重置哪些东西才算“干净”?图片异步加载时,旧请求回调回来写入复用后的新条目,这个时序该怎么判断和丢弃?cachedCount 和 @Reusable 在快速滑动场景下是不是互相干扰,还是说它们本来就应该一起用,只是我某一步没配对?再说弹窗这边。 表单弹窗用的是 CustomDialogController 配合 @CustomDialog,内容里放了一个 TextInput。弹窗能正常出来,但点击输入框光标不出现、软键盘也不弹,就像点了没反应。给 TextInput 加 focusable(true)、defaultFocus(true) 都试过,在 onClick 里手动调 focusControl.requestFocus() 有时候能拿到焦点但键盘还是不弹。后来看到官方文档里讲弹窗焦点策略:弹窗如果默认获取焦点,就会“抢走”输入焦点,反而让弹窗内部的 TextInput 拿不到;另外社区也有人说自定义弹窗和键盘目前无法同时显示。还看到 focusable 参数在 openCustomDialog 上可以用,但老版的 CustomDialogController 好像没有直接对应项,不确定是不是必须迁移。所以我现在卡在:我这种情况到底是焦点被弹窗抢了,还是 TextInput 本身在弹窗里的键盘触发链路就没走通? 如果改成 openCustomDialog 并设置 focusable(false),弹窗里的按钮点击和遮罩关闭还能正常吗?enableKeyboardOnFocus 这个属性在弹窗场景下是不是也必须同步调整?这两个问题一个在列表渲染层,一个在弹窗焦点层,我分开调都能看到一点效果,但合在一起改就经常顾此失彼。想请教一下有经验的大佬,排查顺序应该怎么排,以及 @Reusable 的状态重置和弹窗焦点策略有没有什么“最小可靠配置”可以直接先跑起来?

评论4

浏览 40

发布于昨天08:53
个人开发不知道能不能申请到对应接口

评论2

浏览 20

发布于昨天08:43
HarmonyOS有相应的方法或者SDK吗?

评论3

浏览 37

发布于昨天08:14
请问上架鸿蒙应用一定要每年支付服务器费用和域名费用吗?做个小工具上架,还要每年都支付几百块费用才行吗?我问AI,好像说如果不持续租用服务器的话。备案会被撤销。应用也会被下架。

评论16

浏览 236

发布于2026-10-16 09:17
PixelMap 多次缩放、旋转和编码以后内存峰值很高,中间产生的 Native 内存什么时候释放?

评论3

浏览 29

发布于昨天07:43
想问下各位大神,个人开发者。赶上app从手机版本增加pad版本,用deveco code批量跑批多一点,结果可能触发了风控机制,被临时禁用了。虽然说到11月2日可能解禁,但是刚好这周末有时间,有几个大功能着急上。所以,请问各位大神,这种情况应该找谁申诉啊。给DevConnect@huawei.com发了邮件,反馈说开发者联盟不负责Deveco code申诉,这边无法处理。

评论13

浏览 63

发布于昨天07:23
现在在做安卓项目迁移, 遇到了EpMedia这个sdk, 地址(https://github.com/yangjie10930/EpMedia),但是没有适配鸿蒙,看着是个人开源库,并不是厂商sdk,而且代码已经不维护了,现在需要怎么适配呢?是做桥接还是换类似功能的sdk;哪种更加好点呢,flutter版本号3.47.6

评论1

浏览 32

发布于昨天06:57
用 HdsTabs 做底部 Tab,默认看起来像有"包边"。示例代码如下所示:HdsTabs({ index: this.currentTabIndex, controller: this.tabsController }) { TabContent() { } .tabBar(this.TabTextBuilder(this.tabTitles[0], 0)) // …… } .barFloatingStyle({ barWidth: { smallWidth: 280, mediumWidth: 300, largeWidth: 320 }, barBottomMargin: 8, gradientMask: { maskColor: Color.Transparent }, lightColor: Color.Transparent, systemMaterialEffect: { materialType: hdsMaterial.MaterialType.IMMERSIVE, materialLevel: hdsMaterial.MaterialLevel.EXQUISITE } }) .barPosition(BarPosition.End) .barOverlap(true) .barBackgroundColor(Color.Transparent) .barBackgroundBlurStyle(BlurStyle.NONE) .divider({ mode: DividerMode.NONE })最终的效果是:期望的效果是,无边框线的:

评论44

浏览 518

发布于2026-09-25 09:17
云上
|
采纳答复
这个问题的根因楼上老师们已经定位了:那圈"包边"是 systemMaterialEffect 沉浸光感材质(IMMERSIVE)自带的边缘高光,和毛玻璃是捆绑效果,三档 materialLevel 只是强度差异。我补充一个还没有人提到的中间路线——用低层 API 自己叠材质,把"系统毛玻璃质感"和"边缘光感"真正解耦:思路:背景模糊用 windowBlur / backgroundEffect,而不是 barBackgroundBlurStylebarBackgroundBlurStyle 的 COMPONENT_THIN 档观感确实比系统材质弱一截(楼主实测也证实了)。想要更接近 EXQUISITE 的磨砂质感,可以试 backgroundEffect,它提供可调参数,能逼近系统材质的观感:.barBackgroundColor(Color.Transparent) .backgroundEffect({ radius: 40, // 模糊半径,调到接近 EXQUISITE 的雾面感 saturation: 1.2, // 饱和度略提,模拟系统材质的通透感 brightness: 1.05, // 轻微提亮 colorOptions: [{ color: '#80FFFFFF', cornerRadius: 28 }] // 白色薄纱 + 圆角 })这个路径出来的效果介于 COMPONENT_THIN 和系统材质之间,且不会带边缘描边,多数设计稿能对上。如果必须要系统材质:换 MaterialType 而不是降档补一个实测细节:MaterialType.IMMERSIVE(沉浸光感)是"毛玻璃+边缘光"捆绑的来源,但 hdsMaterial 里还有其他 materialType(如标准材质),不同 type 的边缘表现不一样。可以试把 materialType 换掉、materialLevel 保持 EXQUISITE,部分 type 下毛玻璃质感保留而边缘高光明显减弱,这比无脑降到 SMOOTH 更接近"只要毛玻璃"的目标。具体各 type 的视觉差异建议在真机上对照 Demo 各跑一遍(模拟器的材质渲染和真机偏差较大)。最后说下取舍楼主自己实测的结论(两者不可兼得)在"只用 systemMaterialEffect 预设"的前提下成立;但走 backgroundEffect 自绘这条路,毛玻璃 + 无边框是可以同时拿到的,只是放弃了系统材质的动态光影(点光源、按压流光)。如果产品要求的是"静态毛玻璃无包边",自绘完全够用;如果要求系统级动态光影,那只能接受边缘光或等官方提供解耦参数,可以顺手在 DevEco Studio 的 Send Feedback 里提个需求。x
点赞1
回复于2026-09-30 07:46

我要提问题

月度答复贡献榜
用户头像
橙动创意
回帖926
粉丝60
关注
用户头像
心系天下
回帖573
粉丝20
关注
用户头像
蓝瘦的蜕变
回帖455
粉丝127
关注
用户头像
Z
回帖421
粉丝7
关注
用户头像
仙银
回帖392
粉丝100
关注
邀您回答
预览画面卡顿怎么优化?
热门标签
1

HarmonyOS 5

2

HarmonyOS 6

3

DevEco Studio

4

UI

5

HarmonyOS

6

ArkUI (方舟UI框架)

7

HarmonyOS 7

8

App开发

9

Ability框架

了解社区公约,与您携手共创和谐专业的开发者社区。
在 App 中查看