组件根据功能可以分为以下五大类:基础组件、容器组件、媒体组件、绘制组件、画布组件。
layoutWeight:父容器尺寸确定时,设置了layoutWeight属性的子元素与兄弟元素占主轴尺寸按照权重进行分配,忽略元素本身尺寸设置,表示自适应占满剩余空间。 Blank:空白填充组件,在容器主轴方向上,空白填充组件具有自动填充容器空余部分的能力。仅当父组件为Row/Column/Flex时生效。
一:基础组件:
| 组件名 | 功能 |
|---|---|
| Blank | 空白填充组件 具有自动填充容器空余部分的能力。仅当父组件为Row/Column时生效。 |
| Button | 按钮组件 |
| Checkbox | 提供多选框组件 |
| CheckboxGroup | 多选框群组,用于控制多选框全选或者不全选状态。 |
| DataPanel | 将多个数据占比情况使用 占比图进行展示组件 |
| DatePicker | 选择 日期的滑动选择器 |
| Divider | 分隔器组件,分隔不同内容块/内容元素。 |
| Gauge | 将数据展示为 环形图表 |
| Image | 本地图片和网络图片的渲染展示。 |
| ImageAnimator | 提供 帧动画组件 来实现逐帧播放图片的能力 |
| LoadingProgress | 显示 加载动效的组件。 |
| Marquee | 跑马灯组件,用于 滚动展示一段单行文本 |
| Navigation | Navigation组件一般作为Page页面的根容器,通过属性设置来展示页面的标题、工具栏、菜单。 |
| PatternLock | 图案密码锁组件 |
| Progress | 进度条组件,用于显示内容加载或操作处理等进度 (线条形状、环形、刻度。。。多种样式进度组件) |
| QRCode | 单个 二维码的组件 |
| Radio | 单选框,提供相应的用户交互选择项 (圆形 单选框) |
| RichText | 富文本组件, 解析并显示HTML格式文本。 |
| ScrollBar | 滚动条组件ScrollBar,用于配合可滚动组件使用,如List、Grid、Scroll。 |
| Search | 搜索框组件 |
| Select | 下拉选择菜单,可以让用户在多个选项之间选择 |
| Slider | 滑动条组件,通常用于快速调节设置值,如音量调节、亮度调节等应用场景。 |
| Span | 作为Text组件的子组件,用于显示行内文本的组件。 |
| Stepper | (类似 卡片滑动组件 )步骤导航器组件,适用于引导用户按照步骤完成任务的导航场景。 |
| StepperItem | 用作Stepper组件页面的子组件 |
| Text | 显示一段文本 |
| TextArea | 可以 输入多行文本并支持响应部分输入事件的组件。 |
| TextInput | 单行文本输入框组件。 |
| TextPicker | 滑动选择文本内容的组件(单个滚动轮选择器)。 |
| TextTimer | 通过文本显示计时信息并控制其计时器状态的组件 (自带倒计时的文本控件)。 |
| TimerPicker | 滑动选择时间的组件 (选择当天时间的选择器)。 |
| Toggle | 组件提供勾选框样式、状态按钮样式及 开关样式组件。 |
| Web | 具有网页显示能力的 Web组件。Web组件使用文档-包含web原生交互方法、http请求 |
组件通用属性:
容器组件:
Flex组件在渲染时存在二次布局过程,因此在对性能有严格要求的场景下建议使用。另外 这些都可以通过 「内外间距」进行手动布局!
其他功能组件
1> 图片组件:
2> 文本组件:
设置文本行数和断行截取样式:
Text('This is the text content of Text Component This is the text content of Text Component')
.fontSize(16)
.maxLines(1)
.textOverflow({overflow:TextOverflow.Ellipsis})
使用decoration设置文本装饰线样式及其颜色:
Text('HarmonyOS')
.fontSize(20)
.decoration({ type: TextDecorationType.Underline, color: Color.Black })
.backgroundColor(0xE6F2FD)
3> 输入框组件:
设置光标位置
可以使用TextInputController动态设置光位置,下面的示例代码使用TextInputController的caretPosition方法,将光标移动到了第二个字符后。 :
this.textField.caretPosition(2)
4> 按钮组件:
5> LoadingProgress组件: