HarmonyOS开发:组件属性动态设置的三种方法
创作时间:
作者:
@小白创作中心
HarmonyOS开发:组件属性动态设置的三种方法
引用
CSDN
1.
https://blog.csdn.net/ming_147/article/details/139477013
在HarmonyOS应用开发中,组件属性的动态设置是一个常见的需求。本文将介绍三种实现方式,帮助开发者根据具体场景选择合适的技术方案。
前言
在很多场景下,针对组件的属性,我们都需要动态来选择是否使用,比如组件的显示和隐藏,背景颜色改变的设置,高度的改变设置,字体大小的改变设置等。在非声明式UI语言里,我们可以使用if/else语法来控制组件的属性设置。那么,在声明式语言ArkUI中,我们如何动态控制某些属性的设置呢?
针对动态属性的设置,目前总结了三种使用方式,可以满足不同的业务场景。
方式一:三元运算符,直接动态设置属性
比如我们要根据一个状态的判断,来动态的显示和隐藏某一个组件,可以使用以下代码:
.visibility(this.isVisibility ? Visibility.Visible : Visibility.None)
这种方式适用于大多数属性的动态设置,只需要控制相关变量即可。
方式二:动态属性attributeModifier控制
方式一的局限在于,无论状态如何变化,属性本身都需要被设置。如果需要真正控制某个属性是否被设置,可以使用attributeModifier属性。
例如,当需要根据状态动态设置高度、侧滑属性或边框属性时,可以采用这种方式。具体步骤如下:
- 声明需要的动态属性,自定义类实现AttributeModifier接口:
class MyTextModifier implements AttributeModifier<TextAttribute> {
applyNormalAttribute(instance: TextAttribute): void {
if (this.textHeight != undefined) {
instance.height(this.textHeight)
}
}
}
- 使用自定义的AttributeModifier:
modifier: MyTextModifier = new MyTextModifier()
.attributeModifier(this.modifier)
方式三:多组件形式
声明式UI支持条件渲染,可以通过创建多个组件实例来实现属性的动态设置。但这种方式会导致代码冗余,因此不推荐用于属性的动态控制,更适合用于组件的整体切换场景。
总结
- 如果是属性值的动态切换,使用方式一便可满足需求。
- 如果是属性的动态设置,使用方式二即可。
热门推荐
首届朋友圈摄影大赛:万元奖金等你拿,用镜头捕捉生活之美
太阳能供电系统在东北农业稻田中的重要作用
冬季用电安全提示
晨牌甘草甜素片:乙肝治疗的多效药物,这些事项要注意
《黄帝内经》揭秘:肾主水的奥秘
甘草治疗哮喘效果获证实,但需遵医嘱使用
冬季高发呼吸道疾病,甘草片这样用最安全有效
用电饭锅蒸米饭的五大绝招,你get了吗?
企业被强制拆迁如何依法进行维权
兰州到成都自驾游必打卡景点推荐
邓超孙俪育儿经:以身作则培养自信独立子女
孙俪邓超:用44本绘本培养孩子六大能力
预防呼吸道疾病的传播
一文掌握王者荣耀S30赛季上分要领:英雄推荐+实战技巧
AI电影热潮来袭:《Our T2 Remake》与九位导演的AIGC实验短片
重症肺炎的诊断标准
这些原因都易引起白肺,儿童做好预防,出现这些症状,及时就医
新研究找到一个新的长寿优势:心理有韧劲儿
心理健康,让你活得更久!
握力大,可能是长寿体质?
均衡营养,延寿秘籍大公开!
益生菌,让你远离亚健康
春运将至,酒类携带全攻略:铁路航空规定详解
出入境带酒攻略:海关新规你要知道
「明哲」名字的寓意怎么样_明哲的出处
手机银行查社保卡余额:10.34亿人用,安全便捷无须排队
社保卡余额查询攻略:微信支付宝等五种方式详解
社保查询更便捷:微信支付宝轻松查余额
蓟州区中考新政:蓝印户籍考生报名条件及全流程指南
餐后两小时血糖测量:糖尿病管理的关键指标