赞
踩
个人博客主页 : 谭祖爱 & 技术博客
项目实例地址 : RecordHarmonyOSProject
鸿蒙操作系统作为华为推出的全新分布式操作系统,为开发者提供了丰富的组件库,使得开发者能够快速构建功能强大、界面美观的应用程序。本文将深入探讨鸿蒙应用开发中常用的组件,帮助开发者更好地理解和应用这些组件,提升开发效率和用户体验。
基础组件:Text/Span,TextInput/TextArea,Button,Image
Text是文本组件,通常用于展示用户的视图,如显示文章的文字
Text创建方式:1.string字符串,2.引用Resource资源
Text('我是一段文本')
通过 $r('app.string.xxx')
引用 string.json
文件中的 xxx(属性名) 对于的值
Text($r('app.string.app_name'))
.baselineOffset(0)
.fontSize(30)
.border({ width: 1 })
.padding(10)
.width(300)
Text('左对齐')
.width(300)
.textAlign(TextAlign.Start)
Text('中间对齐')
.width(300)
.textAlign(TextAlign.Center)
Text('右对齐')
.width(300)
.textAlign(TextAlign.End)
Text('This is the setting of textOverflow to Clip text content This is the setting of textOverflow to None text content. This is the setting of textOverflow to Clip text content This is the setting of textOverflow to None text content.')
.width(250)
.textOverflow({overflow:TextOverflow.None})
.maxLines(1)
.fontSize(12)
.border({width:1}).padding(10)
Text('This is the setting of textOverflow to Clip text content This is the setting of textOverflow to None text content. This is the setting of textOverflow to Clip text content This is the setting of textOverflow to None text content.')
.width(250)
.textOverflow({overflow:TextOverflow.Ellipsis})
.maxLines(1)
.fontSize(12)
.border({width:1}).padding(10)
Text('This is the text with the line height set. This is the text with the line height set.')
.width(300).fontSize(12).border({ width: 1 }).padding(10)
Text('This is the text with the line height set. This is the text with the line height set.')
.width(300).fontSize(12).border({ width: 1 }).padding(10)
.lineHeight(20)
Text("这是一段可复制文本")
.fontSize(30)
.copyOption(CopyOptions.InApp)
Text('点我')
.onClick(()=>{
console.info('我是Text的点击响应事件');
})
Span只能作为Text组件的子组件显示文本内容。可以在一个Text内添加多个Span来显示一段信息
Text('我是Text') {
Span('我是Span')
}
.padding(10)
.borderWidth(1)
Text() {
Span('我是Span1,').fontSize(16).fontColor(Color.Black)
.decoration({type:TextDecorationType.None})
Span('我是Span1,').fontSize(16).fontColor(Color.Grey)
.decoration({ type: TextDecorationType.LineThrough, color: Color.Red })
Span('我是Span2').fontColor(Color.Blue).fontSize(16)
.fontStyle(FontStyle.Italic)
.decoration({ type: TextDecorationType.Underline, color: Color.Black })
Span(',我是Span3').fontSize(16).fontColor(Color.Grey)
.decoration({ type: TextDecorationType.Overline, color: Color.Green })
}
.borderWidth(1)
.padding(10)
Text() {
Span('I am Upper-span').fontSize(12).textCase(TextCase.UpperCase)
}
.borderWidth(1)
.padding(10)
Text() {
Span('I am Upper-span').fontSize(12)
.textCase(TextCase.UpperCase)
.onClick(()=>{
console.info('我是Span——onClick')
})
}
TextInput 是单行输入框组件,通常用于响应用户的输入操作
TextInput()
TextInput有5种可选类型,分别为Normal基本输入模式、Password密码输入模式、Email邮箱地址输入模式、Number纯数字输入模式、PhoneNumber电话号码输入模式。通过type属性进行设置:
TextInput().type(InputType.Normal)
TextInput().type(InputType.Password)
TextInput().type(InputType.Email)
TextInput().type(InputType.Number)
TextInput().type(InputType.PhoneNumber)
TextInput({placeholder:'我是提示文本'})
TextInput({placeholder:'我是提示文本',text:'我是当前文本内容'})
TextInput({placeholder:'我是提示文本',text:'我是当前文本内容'}).backgroundColor(Color.Pink)
TextInput()
.onChange((value: string) => {
console.info(value);
})
.onFocus(() => {
console.info('获取焦点');
})
TextArea 是 多行输入框
TextArea()
TextArea({text:"我是TextArea我是TextArea我是TextArea我是TextArea"}).width(300)
Button是按钮组件,通常用于响应用户的点击操作
Button通过调用接口来创建,接口调用有以下两种形式
Button('Ok', { type: ButtonType.Normal, stateEffect: true })
.borderRadius(8)
.backgroundColor(0x317aff)
.width(90)
.height(40)
Button({ type: ButtonType.Normal, stateEffect: true }) {
Row() {
Image($r('app.media.app_icon')).width(20).height(40).margin({ left: 12 })
Text('loading').fontSize(12).fontColor(0xffffff).margin({ left: 5, right: 12 })
}.alignItems(VerticalAlign.Center)
}.borderRadius(8).backgroundColor(0x317aff).width(90).height(40)
Button有三种可选类型,分别为Capsule(胶囊类型)、Circle(圆形按钮)和Normal(普通按钮),通过type进行设置
Button('Disable', { type: ButtonType.Capsule, stateEffect: false })
.backgroundColor(0x317aff)
.width(90)
.height(40)
Button('Circle', { type: ButtonType.Circle, stateEffect: false })
.backgroundColor(0x317aff)
.width(90)
.height(90)
Button('Ok', { type: ButtonType.Normal, stateEffect: true })
.borderRadius(8)
.backgroundColor(0x317aff)
.width(90)
.height(40)
Button('Ok', { type: ButtonType.Normal, stateEffect: true })
.onClick(()=>{
console.info('Button onClick')
})
Image是显示图片组件,比如:按钮中的icon、网络图片、本地图片等
Image('images/like.png').size({width: 100,height:100})
Image('https://www.wanandroid.com/resources/image/pc/logo.png').size({width: 300,height:300})
注:获取网络图片,需要申请网络权限,在 module.json5
中配置。
Image($r('app.media.like')).size({width: 100,height:100})
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。