首页 > 其他分享 >HarmonyOS应用开发-声明式UI描述规范

HarmonyOS应用开发-声明式UI描述规范

时间:2022-09-21 08:45:17浏览次数:64  
标签:示例 Text 配置 HarmonyOS 复制 UI 组件 参数 声明

1.无构造参数配置

组件的接口定义不包含必选构造参数,组件后面的“()”中不需要配置任何内容。

示例:


Column() { Text('item 1') Divider() // No parameter configuration of the divider component Text('item 2') }

2.必选参数构造配置

如果组件的接口定义中包含必选构造参数,则在组件后面的“()”中必须配置参数。参数可以使用常量进行赋值。

示例:

Image组件的必选参数src:


Image('http://xyz/a.jpg')

 

Text组件的必选参数content:


Text('123')

变量或表达式也可以用于参数赋值,其中表达式返回的结果类型必须满足参数类型要求。

3.属性配置

使用属性方法配置组件的属性。属性方法紧随组件,并用“.”运算符连接。

示例:

配置Text组件的字体大小属性示例:


Text('123').fontSize(12)

此外,还可以使用“.”操作进行链式调用并同时配置组件的多个属性。

可以同时配置Image组件的多个属性,如下所示:


Image('a.jpg') .alt('error.jpg') .width(100) .height(100)

 

除了直接传递常量参数外,还可以传递变量或表达式,如下所示:


Text('hello') .fontSize(this.size) Image('a.jpg') .width(this.count % 2 === 0 ? 100 : 200) .height(this.offset + 100)

对于内置组件,框架还为其属性预定义了一些枚举类型,供开发人员调用,枚举值可以作为参数传递。

枚举类型必须满足参数类型要求,有关特定属性的枚举类型定义的详细信息。

 

4.事件配置

通过事件方法可以配置组件支持的事件。

示例:

使用lambda表达式配置组件的事件方法:

 


Button('add counter') .onClick(() => { this.counter += 2 })

 

使用匿名函数表达式配置组件的事件方法(此时要求我们使用bind,以确保函数体中的this引用包含的组件。):


Button('add counter') .onClick(function () { this.counter += 2 }.bind(this))

 

使用组件的成员函数配置组件的事件方法:


myClickHandler(): void { // do something } ... Button('add counter') .onClick(this.myClickHandler)

 

5.子组件配置

对于支持子组件配置的组件,例如容器组件,在“{ ... }”里为组件添加子组件的UI描述。Column、Row、Stack、Button、Grid和List组件都是容器组件。

示例:


Column() { Text('Hello') .fontSize(100) Divider() Text(this.myText) .fontSize(100) .fontColor(Color.Red) }
 

标签:示例,Text,配置,HarmonyOS,复制,UI,组件,参数,声明
From: https://www.cnblogs.com/guangzhiruijie/p/16714339.html

相关文章

  • 导入ElementUI的方式
    导入方式1、引入ui框架可以引入多个ui框架但是注意css有可能会冲突importElementUIfrom'element-ui';2、引入全局css整个ui框架的风格import'element-ui/lib/the......
  • 做题记录整理dp7 P1373 小a和uim之大逃离(2022/9/20)
    P1373小a和uim之大逃离好吧,这道题是看题解的。。。(dp学得是真的拉)不过看的是kksc03这种无代码的,应该也还行。。。#include<bits/stdc++.h>#definefor1(i,a,b)for(......
  • NGUI
    1.NGUI1.NGUI的历史NGUI的最早版本发布于2011年12月份,到现在差不多有5年的历史。NGUI可以毫不客气的说是Unity平台最强大的第三方UI系统。Unity早期版本......
  • elementui之pagination组件
    当数据量过多时,使用分页分解数据。设置layout,表示需要显示的内容,用逗号分隔,布局元素会依次显示。prev表示上一页,next为下一页,pager表示页码列表,除此以外还提供了jumper和t......
  • 基于HBuilderX+UniApp+ThorUI的手机端前端的页面组件化开发经验
    现在的很多程序应用,基本上都是需要多端覆盖,因此基于一个WebAPI的后端接口,来构建多端应用,如微信、H5、APP、WInForm、BS的Web管理端等都是常见的应用。本篇随笔继续分析总......
  • [转]启动mysql服务时一直提示ERROR The server quit without updating PID file
    原文地址:启动mysql服务时一直提示ERRORTheserverquitwithoutupdatingPIDfile_zqin0的博客-CSDN博客centos7中使用二进制文件部署的mysql启动mysql服务时一直提......
  • UI自动化测试之五(UnitTest测试框架)
    UnitTest测试框架 1、测试用例 2、完整的测试流程需包含:初始化测试步骤(1)、先执行setup()(2)、执行测试点的代码(3)、最后执行tearDown()测试断言(1)、in   关键字:as......
  • JavaScript 声明提升
    函数及变量的声明都将被提升到函数的最顶部。变量可以在使用后声明,也就是变量可以先使用再声明。声明提升:函数声明和变量声明总是会被解释器悄悄地被"提升"到方法体的最......
  • String、StringBuffer和StringBuilder区别
    String、StringBuffer和StringBuilder区别1、StringBuffer和StringBuilder非常的类似,均表示字符可变序列,方法也一样。2、String表示不可变的字符序列,效率低,复用性高。3......
  • 如何利用OpenHarmony ArkUI的Canvas组件实现涂鸦功能?
     简介ArkUI是一套UI开发框架,提供了开发者进行应用UI开发时所需具备的能力。随着OpenAtomOpenHarmony(以下简称“OpenHarmony”)不断更新迭代,ArkUI也提供了很多新的组件......