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支持条件渲染,可以通过创建多个组件实例来实现属性的动态设置。但这种方式会导致代码冗余,因此不推荐用于属性的动态控制,更适合用于组件的整体切换场景。
总结
- 如果是属性值的动态切换,使用方式一便可满足需求。
- 如果是属性的动态设置,使用方式二即可。
热门推荐
你的债券基金会在节假日“休息”吗?
乘动车去香格里拉可以随身携带氧气罐吗?
如何较为准确的测试自己的网速
何不食肉糜是什麼意思?
攻略:重庆10家抗战时期使馆旧址全在这里,有详细地址
遭遇假劣种子在什么情况下可以维权
科研课题名称的表述有哪些要求?
掼蛋为何成为社交的“硬通货”
程序员在面对行业竞争时的自我提升策略
上海崇明东滩候鸟栖息地:推动城市与自然和谐共生
守护崇明东滩的科学家
产检发现胎儿心室点状强回声,莫要慌,我来告诉你
胎儿心脏彩超发现"点状强回声"怎么办?专家解读及应对指南
天文学家如何计算太阳系的大小
Marp 入门与教程:让你一分钟爱上Markdown写PPT的乐趣
如何让作物多“吃”光、更高产
世界钢琴十大难曲,李斯特就占了五首...
如何让你的歌曲朗朗上口?10 个行之有效的技巧
劳荣枝案的启示:有多少人被欲望吞噬?
探索春秋战国:30个历史典故的见证
什么叫占位病变
发SCI如何选分区
正弦定理的八种证明方法
养金蝉:大叶芦苇的优势与养殖方法
论文修改润色合同模板:确保学术成果品质的关键协议
新会陈皮:如何分辨年份高低?
上颚干涩疼痛是否意味着上火?医生的专业解答来了
长痘最不能吃的食物和注意事项
细胞自噬:从基本概念到研究方法的全面解析
不容易脑梗的老人,大多都有这几个习惯