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支持条件渲染,可以通过创建多个组件实例来实现属性的动态设置。但这种方式会导致代码冗余,因此不推荐用于属性的动态控制,更适合用于组件的整体切换场景。
总结
- 如果是属性值的动态切换,使用方式一便可满足需求。
- 如果是属性的动态设置,使用方式二即可。
热门推荐
泉州深度游,十大景点带你玩转古城,二日游攻略全揭秘!
Direct2D中的2D仿射转换效果详解
美国二流大学生物博士回国后能从事哪些工作?
税务审核清算需要多久?一文详解税务清算流程与注意事项
捷达改装轮毂完全指南:关键参数与注意事项
不管夫妻还是情人,两个人分开前,都有这2个征兆
《守望先锋2》玩家自制宝可梦主题皮肤,创意满满获赞无数
心流状态:如何进入并保持这种高效专注的状态
“中日韩合作青年对话”召开,青年发出五项合作共识
环保洗涤方法与家庭实践
独立游戏简史:从萌芽到新浪潮
探索独立游戏的奇妙世界:五款不容错过的精彩推荐
东北区自然资源优势
在职MBA学位含金量如何?职场提升的优势剖析
金牛座本周运势
唯和诺的同义词区别
洗被子的最佳模式是什么(选择合适的洗衣机模式)
温柔的守护,有效疏导 预防孩子自残行为的全面策略
虎皮兰养护攻略:简单易行的绿色陪伴,提升居家生活品质
洛川旅游景点全攻略:从革命遗址到自然风光,领略陕北独特魅力
双按钮轻触开关的故障排查与维修技巧
百花齐放争荣——大众电影百花奖的故事
江西高考招生计划录取政策公布,专科本科招生计
微信公众号和文章的5大搜索入口全攻略
杭州新春招聘会火热开启!提供2.1万个岗位,AI人才吃香
整个欧洲几乎都被禁用,纳粹的标准“卐字”到底是什么意思?
什么是存量与流量?
韩庚从歌手到演员,他的每一次转型都有突破,来看看他最火的电影作品
子公司是独立的法人吗?一文详解子公司与上市公司的法律关系
LPR编程是什么?详解车牌识别技术原理与应用