鸿蒙基础组件介绍
本文章对鸿蒙中最常用的组件以及属性方法进行简单的介绍,主要介绍以下四个组件:
- Image 组件
- Text / span 组件
- Button 组件
- TextInput / TextArea 组件
以上四个组件可以满足我们大多数场景的需求
Image 组件
Image 组件主要用于图片展示,包括但不限于网络图片、本地图片、base64格式图片,基础用法如下:
Image(图片地址).属性
其中图片地址可类型如下:
- 网络图片地址,例如 'i-blog.csdnimg.cn/blog_migrat…'
- 本地资源地址,需要使用 $r 进行包裹,格式为 $r('app.media.xxx'),其中 xxx 为图片名称且不需要添加后缀名
- 绝对路径,可以使用 /pages/图片路径 的方式加载图片
常用的 Image 组件属性(通用属性除外)如下:
-
aspectRatio:其属性中接收一个参数,类型为数字,用于固定图片的宽高比,防止图片发生变形
-
fillColor:其中接收一个表示颜色的参数,例如鸿蒙中内置的 Color 枚举、十六进制颜色、rgb颜色等
注意:图片格式必须为 svg 格式
-
objectFit: 其中接收一个 ImageFit 枚举的参数,有 Fill、Cover、Contain,效果如下:
若需要图片根据宽或者高自适应,只需要设置宽或者高一个属性的值即可。
Text / span 组件
Text / span 组件主要用于文字的展示,其中基础用法如下:
Text('我是Text') {
Span('我是Span')
.属性
}.属性
其中 span 是 Text 的子组件,且如果 span 中有值的话会覆盖掉 Text 中的文本信息
常用的 Text / span 组件属性(通用属性除外)如下:
- fontSize:设置字体大小
- fontColor:设置字体颜色
- fontWeight:设置字体粗细
- decoration:设置文本修饰线及颜色
- textOverflow:设置文本超长时的显示方式
- maxLines:设置文本的最大行数
其中 textOverflow 和 maxLines 组合使用可以为超出的文本显示省略号
注意:span 组件只能嵌套在 Text, RichEditor 以及 ContainerSpan 组件中
测试代码如下:
@Entry
@Component
struct Index {
build() {
Column() {
// 省略号
Text('测试文字'.repeat(20))
.fontColor(Color.Blue)
.maxLines(2)
.textOverflow({ overflow: TextOverflow.Ellipsis })
Text('-'.repeat(20))
// Text 与 span 组合使用
Text('我是Text') {
// span 内容替换掉了 Text 的内容
Span('我是Span')
.fontSize(20)
.fontWeight(900)
.decoration({ type: TextDecorationType.Overline })
Span('我是Span')
.fontColor(Color.Yellow)
.decoration({ type: TextDecorationType.LineThrough, color: Color.Red })
Span('我是Span')
.font({ size: 16, weight: 300 })
.decoration({ type: TextDecorationType.Underline, color: Color.Blue })
}
}
.width(300)
.height(200)
.backgroundColor(Color.Pink)
}
}
Button 组件
Button 组件有内部的一部分样式封装,虽然我们使用 Text 组件也可封装成 Button 组件的样式,但是 Button 组件不同于 Text 组件,它可以给用户提供点击反馈,提升用户体验。其基础用法如下:
Button('我是Button', { 参数配置 }){
// 可包含基础组件和容器组件
}
.通用属性
这里我们可很明显的看到 Button 组件可以接收参数进行相关配置,以下是对 Button 的参数介绍:
-
type:设置按钮类型,其接收类型为 ButtonType 的枚举
- Capsule:胶囊类型
- Circle:圆形按钮
- Normal:普通按钮
-
stateEffect:设置按钮的点击反馈,接收类型为 boolean
注意:若 Button 组件内部有文本展示,则无需给 Button 组件写入文字
@Entry
@Component
struct Index {
build() {
Column() {
Button({ type: ButtonType.Capsule, stateEffect: false }) {
Text('我是Text')
}
.backgroundColor(Color.Pink)
.padding(10)
}
}
}
TextInput / TextArea 组件
TextInput 、TextArea 是输入框组件,通常用于响应用户的输入操作,比如评论区的输入、聊天框的输入、表格的输入等。其中 TextInput 为单行输入框、TextArea 为多行输入框,当文本超过一行时会换行继续显示。其基础用法如下:
TextInput({ 参数配置 })
.属性
TextArea 组件和 Text 组件的常用参数配置和独有属性一致
常用参数介绍:
- text:其参数类型是文本字符串,是输入框中输入的内容
- placeholder:其参数类型是文本字符串,用于文本框提示文字的设置
属性(通用属性除外):
-
type:其参数类型为 InputType 的枚举,常用的类型如下:
- Normal:默认类型
- Password:密码类型,会隐藏输入的密码
@Entry
@Component
struct Index {
build() {
Column() {
TextInput({ placeholder: '提示文字', text: '内容文字' })
.type(InputType.Normal)
.border({ width: 1 })
TextInput({ placeholder: '请输入密码' })
.type(InputType.Password)
.border({ width: 1 })
}
}
}
以上就是对基本组件的介绍,也是第一次做博客,做得不好的地方请大家多多见谅!!!