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支持条件渲染,可以通过创建多个组件实例来实现属性的动态设置。但这种方式会导致代码冗余,因此不推荐用于属性的动态控制,更适合用于组件的整体切换场景。
总结
- 如果是属性值的动态切换,使用方式一便可满足需求。
- 如果是属性的动态设置,使用方式二即可。
热门推荐
人类历史上死亡人口最多的十次重要事件
我国量子计算机再迎重大突破,这些上市公司早有布局
工贸企业重大隐患判定标准有哪些?
奥运会比赛间隙,运动员为何爱吃香蕉?
非布司他最佳服用时间及用药指南
坐飞机安全出口旁边座位的人必须会英语?有这种规定吗
买完机票选座还要付费?多家航司回应:基于运行和安保需求
王者荣耀防御塔机制详解:从攻击原理到实战策略
一闭眼就头晕天旋地转
摩托车有焦味是怎么回事
如何轻松将PDF表格转换为Excel格式?
如何储存西瓜、哈密瓜和蜜瓜
智能制造工程的实习机会在哪里找?
如何设计易操作、利润高、盈利快、可持续的商业模式
崩坏:星穹铁道“黄泉”角色攻略:背景故事、技能详解与配队建议
喝陈皮水有什么好处和坏处
瓷砖胶和瓷砖背胶不要用错!一字之差性能不同,6个问题必搞懂!
深度解析1.4T发动机百公里油耗,油耗表现如何?选购指南揭秘!
各地开展形式多样的纪念活动铭记历史 赓续抗美援朝精神
颜料的主要成分与原材料是什么?
校园排球:通过比赛点燃学生的体育激情
无欲无求很难吗?怎样才是这个标准?
巴菲特来A股会买这10个股票,deep seek说的,他们全满足条件
划痕症荨麻疹怎么治疗
揭秘阿尔贝托·布里的独特艺术之路:从战地医生到材料大师
阿尔贝托·布里:意大利抽象巨匠,以非传统材料绘就创新篇章
肩部前肌群的解剖结构与触诊方法详解
一文读懂各类心脏疾病
白毛肚和黑毛肚的区别是什么(“黑毛肚”和“白毛肚”怎么选)
增开北京北、清河至张家口动车14列!石家庄至张家口最快压缩50分钟!