“答开发者问”之HarmonyOS鸿蒙Next技术问题解析 第12期
“答开发者问”之HarmonyOS鸿蒙Next技术问题解析 第12期 向所有参与社区互助的开发者致以最诚挚的感谢!
特别感谢本期优质答复贡献者:@乌拉大乌拉、@GeorgeGcs、@我叫张永宽
社区的蓬勃发展,离不开每一位积极参与者的贡献。本期“答开发者问”栏目,精选自广大热心开发者针对提问帖所贡献的众多优质答复之中。它们不仅是智慧与经验的璀璨结晶,更是“众人拾柴火焰高”这一真理的生动体现。
在此,我们由衷地感谢每一位热心参与、乐于分享的开发者,是你们的热情与智慧,让这个社区充满了生机与活力,每一次的解答都是对技术探索精神的最好诠释。同时,我们也诚挚邀请更多的开发者加入到这场智慧碰撞的盛宴中来。无论是抛出难题寻求解答,还是慷慨解囊分享经验,您的每一份参与都将为鸿蒙开发者社区注入新的活力,推动我们共同前行,在技术的海洋中扬帆远航。
本期问题如下:
- 怎样适配 Pura X 的外屏?
- h5链接在HarmonyOS上无法正常展示?
- bindpopup设置popupColor属性不生效?
- 如何对应用进行冷启动优化?
- AlertDialog.show()中message的字体大小和颜色如何修改?
答开发者问系列汇总:
往期问题回顾:
"答开发者问"之HarmonyOS技术问题解析 第1期-华为开发者问答 | 华为开发者联盟 (huawei.com)
"答开发者问"之HarmonyOS技术问题解析 第2期-华为开发者问答 | 华为开发者联盟 (huawei.com)
"答开发者问"之HarmonyOS技术问题解析 第3期-华为开发者问答 | 华为开发者联盟 (huawei.com)
"答开发者问"之HarmonyOS技术问题解析 第4期-华为开发者问答 | 华为开发者联盟 (huawei.com)
"答开发者问"之HarmonyOS技术问题解析 第5期-华为开发者问答 | 华为开发者联盟 (huawei.com)
"答开发者问"之HarmonyOS技术问题解析 第6期-华为开发者问答 | 华为开发者联盟 (huawei.com)
"答开发者问"之HarmonyOS技术问题解析 第7期-华为开发者问答 | 华为开发者联盟 (huawei.com)
"答开发者问"之HarmonyOS技术问题解析 第8期-华为开发者问答 | 华为开发者联盟 (huawei.com)
"答开发者问"之HarmonyOS技术问题解析 第9期-华为开发者问答 | 华为开发者联盟 (huawei.com)
"答开发者问"之HarmonyOS技术问题解析 第10期-华为开发者问答 | 华为开发者联盟 (huawei.com)
"答开发者问"之HarmonyOS技术问题解析 第11期-华为开发者问答 | 华为开发者联盟 (huawei.com)
注意:
更多关于“答开发者问”之HarmonyOS鸿蒙Next技术问题解析 第12期的实战教程也可以访问 https://www.itying.com/category-93-b0.html
问题三:bindpopup设置popupColor属性不生效?
bindpopup绑定在被foreach循环多次的组件上,气泡颜色(popupColor)设置成黑色但未生效,导致白色字体显示不清晰,demo代码如下:
@Entry
@Component
struct BindPopup {
@State message: string = 'Hello World';
@State longPress:string=''
@State lists:string[]=["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15",'16','17','18','19','20','21','22','23','24','25','26']
@Builder longBindPopup(){
Column(){
Text('编辑')
.fontColor(Color.White)
}
}
build() {
Column () {
Grid(){
ForEach(this.lists,(item:string)=>{
GridItem(){
Text(this.message)
.fontSize(15)
.width(100)
.height(30)
.margin({top:20})
.fontWeight(FontWeight.Bold)
}
.parallelGesture(GestureGroup(GestureMode.Exclusive,
LongPressGesture({ repeat: true })
.onAction(() =>{
this.longPress=item
}),
))
.bindPopup(this.longPress===item,{
builder:this.longBindPopup(),
width:50,
popupColor:('rgba(0,0,0,0.80)')
})
})
}
}
.height('100%')
.width('100%')
}
}
解决方案:
bindpopup中可以通过popupColor设置提示气泡的颜色,需要设置backgroundBlurStyle属性为BlurStyle.NONE关闭默认模糊后方可清楚展示设置的颜色,demo如下:
@Entry
@Component
struct BindPopup {
@State message: string = 'Hello World';
@State longPress:string=''
@State lists:string[]=["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15",'16','17','18','19','20','21','22','23','24','25','26"]
@Builder longBindPopup(){
Column(){
Text('编辑')
.fontColor(Color.White)
}
}
build() {
Column () {
Grid(){
ForEach(this.lists,(item:string)=>{
GridItem(){
Text(this.message)
.fontSize(15)
.width(100)
.height(30)
.margin({top:20})
.fontWeight(FontWeight.Bold)
}
.parallelGesture(GestureGroup(GestureMode.Exclusive,
LongPressGesture({ repeat: true })
.onAction(() =>{
this.longPress=item
}),
))
.bindPopup(this.longPress===item,{
builder:this.longBindPopup(),
width:50,
popupColor:('rgba(0,0,0,0.80)'),
backgroundBlurStyle:BlurStyle.NONE
})
})
}
}
.height('100%')
.width('100%')
}
}
问题二:h5链接在HarmonyOS上无法正常展示?
h5链接在ios和安卓上可以正常展示,但是在HarmonyOS上无法展示。
解决方案:
需要设置是否开启文档对象模型存储接口(DOM Storage API)权限,该权限默认未开启false,改成true即可开启,参考demo:
// xxx.ets
import { webview } from '@kit.ArkWeb';
@Entry
@Component
struct WebComponent {
controller: webview.WebviewController = new webview.WebviewController();
build() {
Column() {
Web({
src: "https://public.health.zoenet.cn/medical/consultation-guidelines/consultation-guidelines?appCode=HC_XMDYYY_HMS&orgCode=426600660",
controller: this.controller
})
.domStorageAccess(true)
}
}
}
找HarmonyOS工作还需要会Flutter的哦,有需要Flutter教程的可以学学大地老师的教程,很不错,B站免费学的哦:BV1S4411E7LY/?p=17
问题一:怎样适配 Pura X 的外屏?
应用要怎样适配 Pura X 的外屏并在外屏显示?
解决方案:
Pura X适配可以参考官方适配指导。
目前内屏可以通过真机或者模拟器来进行调试,但是外屏目前不支持真机调试,只能通过模拟器来调试。模拟器目前仅对部分应用开放,且需要向华为官方申请。
应用在外屏显示需要开发者首先完成对应用外屏的适配,然后向华为官方申请外屏上架,评审通过后会添加白名单,之后应用就可以在外屏展示。
原链接:
在“答开发者问”之HarmonyOS鸿蒙Next技术问题解析第12期中,主要探讨了鸿蒙Next在分布式能力、性能优化及开发者工具方面的最新进展。鸿蒙Next通过增强的分布式数据管理,实现了跨设备数据无缝流转,提升了多设备协同效率。性能优化方面,重点介绍了内存管理和任务调度的改进,显著提升了系统响应速度和资源利用率。此外,开发者工具如DevEco Studio的更新,提供了更强大的调试和测试功能,助力开发者高效构建应用。